我正在尝试从模拟器上的Android应用程序访问我的Goodle Drive帐户。 我全力跟进:https://developers.google.com/drive/android/auth 关于授权Android应用 但我还是不能授权自己。 因此, OAuth 是在开发者控制台上创建的,公共API访问 也被创造了。 但我仍然得到:
08-04 13:09:22.154 1683-1711/com.google.process.gapps W/GLSActivity﹕ gms.StatusHelper Status from wire: INVALID_KEY status: null
08-04 13:09:22.154 1683-1711/com.google.process.gapps I/GLSUser﹕ GLS error: INVALID_KEY my_mail@gmail.com oauth2:https://www.googleapis.com/auth/drive.file
08-04 13:09:22.160 1664-2522/com.google.android.gms E/ClientConnectionOperation﹕ Handling authorization failure
com.google.android.gms.drive.auth.c: Authorization failed: See https://developers.google.com/drive/android/auth for details on authorizing an application.
另外,我提出了许可:
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
就像
一样 <activity
android:name="com.google.android.gms.drive.sample.demo.HomeActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="com.google.android.apps.drive.APP_ID"
android:value="329914295769-9e34odtlolkc6sqavaj5uqrduik1ouml.apps.googleusercontent.com" />
</activity>
但是当我尝试时,我仍然无法宣传自己:
if (mGoogleApiClient == null) {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
// .addScope(Drive.SCOPE_APPFOLDER) // required for App Folder sample
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.setAccountName("erakovic.boban@gmail.com")
.build();
}
mGoogleApiClient.connect();
其中 mGoogleApiClient 是GoogleApiClient实例。 我整个早上用谷歌搜索,尽我所能,但仍然没有。 我只是想知道为什么证书指纹(SHA1),因为应用程序是在模拟器上运行的,所以实际上,我们不会在开始生成签名APK的过程之前签名。
我做错了什么,我不明白?
由于
答案 0 :(得分:0)
对于调试,如果在DeveloperConsole中创建API密钥,请不要使用密钥库中的证书指纹(SHA1)创建签名的App。 对于未签名的应用程序(从Eclipse直接到设备,模拟器......)必须使用debug.keystore中的指纹(SHA1)。
默认存储位置debug.keystore文件位于OS X和Linux上的〜/ .android /中,位于Windows XP上的C:\ Documents and Settings \ .android \中,位于C:\ Users \ .android \中Windows Vista和Windows 7。
您可以使用keytool命令从debug.keystore获取SHA1 keytool -list -keystore debug.keystore
keytool默认位置为c:\ Program Files \ Java \ jdk1.7.0_21 \ bin \