2016-10-11 5 views
0

что что:Невозможно получить мастер-токен - java.lang.SecurityException: Не разрешено запустить службу Intent

Невозможно получить мастер-токена java.lang.SecurityException: Не разрешено запустить службу Intent { акт = com.google.android.c2dm.intent.REGISTER PKG = com.google.android.gms (имеет дополнительные услуги)} без разрешения com.google.android.c2dm.permission.RECEIVE в android.app.ContextImpl .startService (ContextImpl.java:1161) at android.content.ContextWrapper. startService (ContextWrapper.java:383) at com.google.firebase.iid.zzf.zzb (Неизвестный источник) at com.google.firebase.iid.zzf.zza (Неизвестный источник) at com.google.firebase. iid.zzf.zzb (Неизвестный источник) на com.google.firebase.iid.zzf.zza (Неизвестный источник) на com.google.firebase.iid.zzd.zzc (Неизвестный источник) на com.google.firebase .iid.zzd.getToken (Неизвестный источник) на com.google.firebase.iid.FirebaseInstanceId.getToken (Неизвестный источник) на com.google.firebase.iid.FirebaseInstanceId.D (Неизвестный источник) на com.google. firebase.iid.Fir ebaseInstanceIdService.zza (Неизвестный Источник) на com.google.firebase.iid.FirebaseInstanceIdService.zzm (Неизвестный источник) в com.google.firebase.iid.zzb $ 2.Запустите (Unknown Source) на java.util .concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1076) по адресу java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:569) at java.lang.Thread.run (Thread.java:856)

мой файл манифеста:

<uses-permission android:name="android.permission.INTERNET" /> 

    <!-- [START gcm_permission] --> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <!-- [END gcm_permission] --> 

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

       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
     <activity android:name=".Main2Activity"> 
     </activity> 

     <!-- Firebase Notifications --> 
     <service 
      android:name="com.badboys.gcm.service.MyFirebaseMessagingService" 
      android:exported="false" > 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      </intent-filter> 
     </service> 
     <service 
      android:name="com.badboys.gcm.service.MyFirebaseInstanceIDService" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.google.android.gms.iid.InstanceID" /> 
      </intent-filter> 
     </service> 

     <!-- ./Firebase Notifications --> 
    </application> 

ответ

0

Добавить

разрешения андроид: имя = андроид "permission.C2D_MESSAGE.": ProtectionLevel = "подпись" />

+0

никакой разницы ... – mywindowshosting2016

0

Проверьте Set up a GCM Client for Android если вы имеете пропустил что-нибудь.

Из того, что я читал, вам не хватает 1-го разрешения, которое запрещает другим приложениям регистрировать/получать ваши сообщения.

"packagename"+".permission.C2D_MESSAGE" 

Вам также не хватает нескольких предметов, которые могут вызвать проблему.

Теперь, если вы хотите Firebase-specific implementation, изменить намерения действие фильтра в MyFirebaseMessagingService к

<action android:name="com.google.firebase.MESSAGING_EVENT"/> 

и MyFirebaseInstanceService к

<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>