2017-03-17 3 views
0

Android 용을 처음 사용하며 Google 드라이브를 사용하여 데이터를 저장 및 검색하려고합니다. Google 드라이브 연결 코드를 작성했습니다. 계정 선택기 대화 상자를 표시하고 계정 선택에 아무런 변화가 없습니다.Android Google 드라이브 통합 - 드라이브 연결 안함

public class SyncActivity extends MainActivity implements GoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener 
{ 
    GoogleApiClient googleApiClient; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_sync); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     googleApiClient = new GoogleApiClient.Builder(this) 
       .addApi(Drive.API) 
       .addScope(Drive.SCOPE_FILE) 
       .addScope(Drive.SCOPE_APPFOLDER) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .build(); 

     Button btnConnectDrive = (Button)findViewById(R.id.connectDrive); 
     btnConnectDrive.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       try{ 
        googleApiClient.connect(); 
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    @Override 
    public void onConnected(Bundle bundle) { 
     super.onConnected(bundle); 
     System.out.println("Connected!!!!!!!!!!!!!!!"); 
    } 

    @Override 
    public void onConnectionSuspended(int i) { 
     super.onConnectionSuspended(i); 
    } 

    @Override 
    public void onConnectionFailed(ConnectionResult connectionResult) { 
     super.onConnectionFailed(connectionResult); 
     if(connectionResult.hasResolution()){ 
      try { 
       connectionResult.startResolutionForResult(this, ConnectionResult.RESOLUTION_REQUIRED); 
      } catch (IntentSender.SendIntentException e) { 
       // Unable to resolve, message user appropriately 
       e.printStackTrace(); 
      } 
     } 
     else { 
      GooglePlayServicesUtil.getErrorDialog(connectionResult.getErrorCode(), this, 0).show(); 
     } 
    } 
} 

답변

0

설정 SHA1 지문을 따르고 Google 개발 콘솔에서 자격증을 취득하는 것과 같이 여러 단계가 필요합니다. Android Quickstart에 표시된 단계를 수행하면 코드 스 니펫도 제공됩니다.

빠른 코드 참조를 원하시면 Android Demo for Drive API을 다운로드하십시오. Android 기기에서 실행할 수있었습니다.

/** 
    * Called when an activity launched here (specifically, AccountPicker 
    * and authorization) exits, giving you the requestCode you started it with, 
    * the resultCode it returned, and any additional data from it. 
    * @param requestCode code indicating which activity result is incoming. 
    * @param resultCode code indicating the result of the incoming 
    *  activity result. 
    * @param data Intent (containing result data) returned by incoming 
    *  activity result. 
    */ 
    @Override 
    protected void onActivityResult(
      int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     switch(requestCode) { 
      case REQUEST_GOOGLE_PLAY_SERVICES: 
       if (resultCode != RESULT_OK) { 
        mOutputText.setText(
          "This app requires Google Play Services. Please install " + 
          "Google Play Services on your device and relaunch this app."); 
       } else { 
        getResultsFromApi(); 
       } 
       break; 
      case REQUEST_ACCOUNT_PICKER: 
       if (resultCode == RESULT_OK && data != null && 
         data.getExtras() != null) { 
        String accountName = 
          data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); 
        if (accountName != null) { 
         SharedPreferences settings = 
           getPreferences(Context.MODE_PRIVATE); 
         SharedPreferences.Editor editor = settings.edit(); 
         editor.putString(PREF_ACCOUNT_NAME, accountName); 
         editor.apply(); 
         mCredential.setSelectedAccountName(accountName); 
         getResultsFromApi(); 
        } 
       } 
       break; 
      case REQUEST_AUTHORIZATION: 
       if (resultCode == RESULT_OK) { 
        getResultsFromApi(); 
       } 
       break; 
     } 
    } 
: 여기

는 계정 선택기에 조각입니다