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> .

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.

  • GCMIntentService + envoi de message à un gestionnaire sur un fil mort
  • Google GCMIntentService instancier
  • Comment lire le fichier son lorsque GCMIntentService onMessage se déclenche?
  • Déployer sur le problème du moteur d'application - Vous devez être connecté pour effectuer cette action
  • Exemple de serveur java GCM
  • Notifications push avec django et GCM
  • Est-ce que passer un contexte d'une activité à une classe statique maintient cette activité pour toujours? Fuite de mémoire?
  • GCM Comment puis-je détecter si l'application est ouverte et, si tel est le cas, afficher une boîte d'alerte, plutôt qu'un flux de notification normal?
  • coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.