2017-01-02 72 views
0

我menifest權限下面的代碼在GCM註冊我的應用程序崩潰

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

android:name="com.google.android.c2dm.permission.RECEIVE"/> 

這是崩潰

通過java.lang.SecurityException異常所致:不允許啓動服務意向{行動=融爲一體。 google.android.c2dm.intent.REGISTER pkg = com.google.android.gms(with extras)} without com.google.android.c2dm.permission.RECEIVE at android.app.ContextImpl.startServiceCommon(ContextImpl.java: 1794) at android.app.ContextImpl.startService(ContextImpl.java:1771) at android.content.ContextWra pper.startService(ContextWrapper.java:521) at com.google.android.gms.iid.zzc.zzb(Unknown Source) at com.google.android.gms.iid.zzc.zza(Unknown Source) at com.google.android.gms.iid.zzc.zzb(Unknown Source) at com.google.android.gms.iid.zzc.zza(Unknown Source) at com.google.android.gms.iid.InstanceID。 zzc(Unknown Source) at com.google.android.gms.iid.InstanceID.getToken(Unknown Source) at android.os.AsyncTask $ 2.call(AsyncTask.java:292) at java.util.concurrent.FutureTask .run(FutureTask.java:237) at android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:587) 在java.lang.Thread.run(Thread.java:818)

+0

有無試試這個你嘗試過與SO相同問題的其他帖子嗎? –

+0

是的,我已經嘗試過,因爲他們告訴要添加這一行

+0

或者是因爲playservice不是在設備中可用或禁用......也是這次崩潰我沒有越來越頻繁,經過這麼長時間後,我得到了這個問題 –

回答

0

你有沒有遵循官方tutorial? 除了接收機(這是不是從你的清單引述部分明確)你需要將權限授予SDK的接收器,即

<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" /> 
      <category android:name="<your-package-name>" /> 
     </intent-filter> 
    </receiver> 
0

在AndroidManifest.xml中

<uses-permission android:name="android.permission.INTERNET" /> 
    <!-- Required to wakeup the device and deliver messages --> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <permission android:name="your_package.permission.C2D_MESSAGE" 
     android:protectionLevel="signature"/> 
    <uses-permission android:name="your_package.permission.C2D_MESSAGE"/>