PDA

View Full Version : عدم تریگر Callback مربوط به DriveFile.open



diapason
چهارشنبه 13 مرداد 1395, 10:05 صبح
سلام.
در خصوص باز کردن یک فایل از روی گوگل درایو توسط API گوگل پلی، تا مرحلۀ دریافت DriveId در OnActivityResult پیش رفتم و مشکلی از این بابت نیست. اما هنگام باز کردن فایل، کال‌بک به هیچ عنوان اجرا نمی‌شه.
دوستان نظری دارند؟
DriveId dId = data.getParcelableExtra(OpenFileActivityBuilder.EX TRA_RESPONSE_DRIVE_ID);
Log.i(TAG, "Drive Id -> " + dId.toString());
//در این خط درایو آی‌دی به درستی نمایش داده می‌شود
DriveFile file = dId.asDriveFile();
file.open(googleApiClient, DriveFile.MODE_READ_ONLY, null)
.setResultCallback(new ResultCallback<DriveApi.DriveContentsResult>() {
@Override
public void onResult(@NonNull DriveApi.DriveContentsResult driveContentsResult) {
//این کال یک هیچ وقت تریگر نمی شود
Log.i(TAG, "onResult Triggered");
if (!driveContentsResult.getStatus().isSuccess()) {
Log.i(TAG, "driveContentsResult Failed");
}
Log.i(TAG, "Selected -> " + driveContentsResult.toString());
}
});

diapason
چهارشنبه 13 مرداد 1395, 15:51 عصر
مشکل رفع شد!
مشکل از اونجایی بود که googleApiClient در OnPause دیسکانکت و در OnResume کانکت می‌شد، اما OnActivityResult پیش از OnResume اجرا می‌شد، یعنی زمانی که هنوز googleApiClient کانکت نشده. به همین دلیل کدی که از اون استفاده می‌کرد، اجرا نمی‌شد. به خاطر همین کانکت و دیسکانکت googleApiClient رو به OnStart و OnDestroy انتقال دادم و مشکل حل شد.