2015-10-01 36 views
3

我想在我的應用程序中第一次實現GCM,所以我已經按照步驟,並且有一個錯誤,使我的應用程序無法獲得我的sv註冊令牌。無法獲取我的InstanceID與GCM

它說:

09-30 23:05:52.196 31461-31514/com.comgonzalovillarbaribus E/GMPM﹕ getGoogleAppId failed with status: 10 
09-30 23:05:52.200 31461-31514/com.comgonzalovillarbaribus E/GMPM﹕ Uploading is not possible. App measurement disabled 

我不知道是什麼問題,我的清單是正確的,我GCM_SENDER_ID是確定的。

這裏就是我要求我的令牌:

// Set GCM 
    if (checkPlayServices()) { 

     InstanceID instanceID = InstanceID.getInstance(this); 
     String token = null; 
     try { 
      token = instanceID.getToken(Constants.GCM_SENDER_ID, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 
      sendRegistrationToServer(token); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 


    ... 


    private void sendRegistrationToServer(String token) { 

    HomeActivity.newRegID=token; 
    //WebServerRegistrationTask webServer=new WebServerRegistrationTask(); 
    //webServer.execute(); 

    // Create params 
    RequestParams params = new RequestParams(); 
    params.add("regID",token); 

    // Doing the req 
    AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); 
    asyncHttpClient.post(Constants.WEB_SERVER_URL, params, new AsyncHttpResponseHandler() { 
     @Override 
     public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
      String key = responseBody.toString(); 
      Log.e("key", key); 
     } 

     @Override 
     public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
      Log.e("error", "conexion"); 
     } 
    }); 
} 

這是我更新的清單:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.comgonzalovillarbaribus" > 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
<permission android:name="com.comgonzalovillarbaribus.permission.C2D_MESSAGE" android:protectionLevel="signature" /> 
<uses-permission android:name="com.comgonzalovillarbaribus.permission.C2D_MESSAGE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".Splash" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".HomeActivity" 
     android:label="@string/title_activity_home" > 
    </activity> 
    <activity 
     android:name=".ActivityHorariosLinea" 
     android:label="@string/title_activity_activity_horarios_linea"> 
    </activity> 
    <activity 
     android:name=".ActivityHorariosParada" 
     android:label="@string/title_activity_activity_horarios_parada" > 
    </activity> 
    <activity 
     android:name=".ActivityListaTrabajos" 
     android:label="@string/title_activity_activity_lista_trabajos" > 
    </activity> 

    <receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND"> 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE"/> 
      <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
      <category android:name="com.comgonzalovillarbaribus"/> 
     </intent-filter> 
    </receiver> 

    <service 
     android:name=".GCM.MyGcmListenerService" 
     android:exported="false" > 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
     </intent-filter> 
    </service> 
    <service 
     android:name=".GCM.MyInstanceIDListenerService" 
     android:exported="false"> 
     <intent-filter> 
      <action android:name="com.google.android.gms.iid.InstanceID"/> 
     </intent-filter> 
    </service> 
    <service 
     android:name=".GCM.RegistrationIntentService" 
     android:exported="false"> 
    </service> 
</application> 

</manifest> 

我已經在控制檯啓用API。我的應用不在Play商店中。

+0

你能發佈你的AndroidManifest.xml文件嗎? – BNK

+0

@BNK我已經添加了它 –

+0

嘗試下面的一些<使用權限android:name =「android.permission.INTERNET」/> <使用權限android:name =「android.permission.GET_ACCOUNTS」/> <使用權限android:name =「android.permission.WAKE_LOCK」/> <使用權限android:name =「com.google.android.c2dm.permission.RECEIVE」/> '(待續) – BNK

回答

0

在項目AndroidManifest.xml你已經給了包com.example.gcm以下權限不存在

<permission android:name="com.example.gcm.permission.C2D_MESSAGE" android:protectionLevel="signature" /> 
<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" /> 

你的應用程序包爲com.comgonzalovillarbaribus那麼試試這個行:

<permission android:name="com.comgonzalovillarbaribus.permission.C2D_MESSAGE" android:protectionLevel="signature" /> 
<uses-permission android:name="com.comgonzalovillarbaribus.permission.C2D_MESSAGE" /> 

從刪除此com.example.gcm包名您的AndroidManifest.xml

EDI T:

使用這也代替你在評論中提到。

<receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND"> 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE"/> 
      <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
      <category android:name="com.comgonzalovillarbaribus"/> 
     </intent-filter> 
</receiver> 
+0

它仍然拋出相同的錯誤:/ –

+0

可以使用更新後的清單文件嗎? – Rajesh

+0

完成@RajeshJadav –

1

我得到了同樣的錯誤,複覈後,我忘了做以下2步:

添加的依賴到你的項目級的build.gradle:

類路徑「com.google .gms:谷歌服務:1.5.0-β2'

的插件添加到您的應用程序級的build.gradle:

應用插件:「com.google.g ms.google-services'