SecurityException: Non autorisé à démarrer le service Intention act = com.google.android.c2dm.intent.REGISTER

Je reçois l'erreur SecurityException: Not allowed to start service Intent mais il semble qu'il ne soit pas une bonne solution après avoir cherché plusieurs sujets.

Aidez-moi, s'il vous plaît,

Merci,

P / s:

Je m'assure d'avoir utilisé le SENDER_ID correct car le numéro de projet a été défini à Google API Console et corrigez le package name .

Erreur :

 Caused by: java.lang.SecurityException: Not allowed to start service Intent { act=com.google.android.c2dm.intent.REGISTER pkg=com.google.android.gms (has extras) } without permission com.google.android.c2dm.permission.RECEIVE at android.app.ContextImpl.startServiceAsUser(ContextImpl.java:1785) at android.app.ContextImpl.startService(ContextImpl.java:1757) at android.content.ContextWrapper.startService(ContextWrapper.java:480) at com.google.android.gms.gcm.GoogleCloudMessaging.e(Unknown Source) at com.google.android.gms.gcm.GoogleCloudMessaging.register(Unknown Source) at controller.RegisterGCMClientAsync.doInBackground(RegisterGCMClientAsync.java:62) at controller.RegisterGCMClientAsync.doInBackground(RegisterGCMClientAsync.java:18) at android.os.AsyncTask$2.call(AsyncTask.java:287) at java.util.concurrent.FutureTask.run(FutureTask.java:234)            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)            at java.lang.Thread.run(Thread.java:841) 

Fichier Manifest.xml:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.cloudstringers" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="app.cloudstringers.Cloudstringers" 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="ui.fragment.RegisterWithAccountsFragment" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <permission android:name="app.cloudstringers.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <!-- Receiver GCM --> <receiver android:name="app.cloudstringers.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="app.cloudstringers" /> </intent-filter> </receiver> <!-- Service GCM --> <service android:exported="true" android:name="app.cloudstringers.GcmIntentService" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="app.cloudstringers.permission.C2D_MESSAGE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> </application> 

SOLUTION J'ai mis de mauvaises lignes. Mettre la <use-permission> dehors de la <application> .

  • Android GCM avec des saveurs de produits
  • GCM "identifiant d'enregistrement" n'est plus enregistré
  • Comment stocker uniquement un identifiant d'enregistrement GCM dans MySQL
  • Enregistrez un périphérique sur GCM chaque fois que le démarrage de l'application est la bonne approche?
  • Combien de temps faut-il pour qu'un message de Google Cloud Messaging arrive sur l'appareil
  • Android GCM envoyé avec succès mais pas reçu sur certains périphériques
  • GCM et App Engine pour l'application de chat
  • Impossible de recevoir des messages utilisant Google Cloud Messaging pour Android (pas la bibliothèque auxiliaire)
  • 2 Solutions collect form web for “SecurityException: Non autorisé à démarrer le service Intention act = com.google.android.c2dm.intent.REGISTER”

    Passez à ceci:

      <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="app.cloudstringers.permission.C2D_MESSAGE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <permission android:name="app.cloudstringers.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="app.cloudstringers.Cloudstringers" 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="ui.fragment.RegisterWithAccountsFragment" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <!-- Receiver GCM --> <receiver android:name="app.cloudstringers.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="app.cloudstringers" /> </intent-filter> </receiver> <!-- Service GCM --> <service android:exported="true" android:name="app.cloudstringers.GcmIntentService" /> </application> 

    Vous devez placer la <use-permission> dehors de la <application> .

    Vous devez vérifier si le magasin Play peut fonctionner ou non. Si cela ne fonctionne pas, il ne peut pas démarrer le service Google.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.