Below is my code:
BaseDemoActivity:
public abstract class BaseDemoActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { private static final String TAG = "BaseDriveActivity"; public static String EXISTING_FOLDER_ID = "CAESHDBCMlBoNlZTdkpaR2FTRTFaWW5wclNXRlFabXMYOiCWqeuO-FI="; public static final String EXISTING_FILE_ID = "CAESHDBCMlBoNlZTdkpaR2FTRTFaWW5wclNXRlFabXMYOiCWqeuO-FI="; protected static final String EXTRA_ACCOUNT_NAME = "account_name"; protected static final int REQUEST_CODE_RESOLUTION = 1; protected static final int NEXT_AVAILABLE_REQUEST_CODE = 2; public GoogleApiClient mGoogleApiClient; @Override protected void onResume() { super.onResume(); if (mGoogleApiClient == null) { mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Drive.API) .addScope(Drive.SCOPE_FILE) .addScope(Drive.SCOPE_APPFOLDER)
PickfolderActivity:
public class PickFolderWithOpenerActivity extends BaseDemoActivity { private static final String TAG = "PickFolderWithOpenerActivity"; private static final int REQUEST_CODE_OPENER = 1; @Override public void onConnected(Bundle connectionHint) { super.onConnected(connectionHint); IntentSender intentSender = Drive.DriveApi .newOpenFileActivityBuilder() .setMimeType(new String[] { DriveFolder.MIME_TYPE }) .build(getGoogleApiClient()); try { startIntentSenderForResult( intentSender, REQUEST_CODE_OPENER, null, 0, 0, 0); } catch (SendIntentException e) { Log.w(TAG, "Unable to send intent", e); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch(requestCode) { case REQUEST_CODE_OPENER: if (resultCode == RESULT_OK) { DriveId driveId = (DriveId) data.getParcelableExtra( OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID); showMessage("Selected folder ID: " + driveId.getResourceId().toString()); BaseDemoActivity.EXISTING_FOLDER_ID = driveId.getResourceId().toString(); } finish(); break; default: super.onActivityResult(requestCode, resultCode, data); break; } } }
Logcat:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.drive.testdemo/com.drive.testdemo.PickFolderWithOpenerActivity}: java.lang.NullPointerException at android.app.ActivityThread.deliverResults(ActivityThread.java:3432) at android.app.ActivityThread.handleSendResult(ActivityThread.java:3475) at android.app.ActivityThread.access$1300(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5086) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at com.drive.testdemo.PickFolderWithOpenerActivity.onActivityResult(PickFolderWithOpenerActivity.java:67) at android.app.Activity.dispatchActivityResult(Activity.java:5446) at android.app.ActivityThread.deliverResults(ActivityThread.java:3428)
Riser source share