2013-10-07 4 views
0

Я работаю над получением GCM. Мое приложение даже не запускается и не срывается. следующая ошибкаGCM ERROR (Ошибка разрешения)

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="15" /> 
<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.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<!-- FOR GCM START1 --> 
<permission 
    android:name="com.ama.gcmdemo.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 
<uses-permission android:name="com.ama.gcmdemo.permission.C2D_MESSAGE" /> 
<!-- App receives GCM messages. --> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
<!-- GCM connects to Google Services. --> 
<!-- GCM requires a Google account. --> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<!-- Keeps the processor from sleeping when a message is received. --> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<!-- FOR GCM END1 --> 
<application 
    android:allowBackup="true" 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    android:screenOrientation="portrait" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.ama.gcmdemo.MainActivityActivity" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
      <receiver 
     android:name="com.google.android.gcm.GCMBroadcastReceiver" 
     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.ama.gcmdemo" /> 
     </intent-filter> 
    </receiver> 
    <service android:name=".GCMIntentService" /> 
    <service android:name=".DialogService" /> 
</application> 

И получать следующую ошибку

 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ama.gcmdemo/com.ama.gcmdemo.MainActivityActivity}: java.lang.IllegalStateException: Application does not define permission com.ama.gcmdemo.permission.C2D_MESSAGE 

Основная деятельность непосредственно под com.ama.gcmdemo пакета.

Пожалуйста, укажите, где это вина

+0

Вы добавили библиотека GCM в вашем приложении? – GrIsHu

ответ

0

Дайте это разрешения в файле манифеста

<permission 
    android:name="<package-name>.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 

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

<!-- This app has permission to register and receive data message. --> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 

вместо пакета имя-дать свое имя пакета

+0

com.ama.gcmdemo - это название пакета, которое уже существует – Gaurav

0

Попробуйте это ..

Просто изменить нижнюю строку внутри вашего ресивера,

android:name="com.google.android.gcm.GCMBroadcastReceiver" 

к,

android:name="com.ama.gcmdemo.GCMBroadcastReceiver" 

И убедитесь, что у вас есть GCMBroadcastReceiver.java внутри пакета. Bcs, вы должны иметь приемник внутри вашего пакета, чтобы получать сообщения GCM.

+0

no still not working – Gaurav

+0

Проверить мои изменения .. – Hariharan

0

Вы должны определить свой recevier с именем пакета GCM не имя приложения ваш пакет, как показано ниже:

 <receiver 
    android:name="com.google.android.gcm.GCMBroadcastReceiver"> 

Не

<receiver 
     android:name="com.google.android.gcm.GCMBroadcastReceiver" 
Смежные вопросы