2

我使用谷歌推送通知,它一直工作到現在, 目前推送通知不起作用,因爲onRegistered從未啓動。我認爲這個問題是在清單(因爲問題是,接收器沒有被調用),但我不知道推送通知接收器安卓(清單?)

這是我的清單

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.name.name" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="8" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.SEND_SMS" /> 
    <uses-permission android:name="android.permission.WRITE_SMS"/> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.READ_SMS" /> 
    <uses-permission android:name="android.permission.RESTART_PACKAGES"/> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <uses-permission android:name="com.name.name.permission.C2D_MESSAGE" android:protectionLevel="normal" /> 
    <application 
     android:allowBackup="true" 
     android:icon="@drawable/logo" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.name.name.Disclaimer" 
      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="com.name.name.Pago" 
      > 
     </activity> 
     <activity android:name="com.name.name.MainActivity" android:screenOrientation="portrait"></activity> 
     <activity android:name="com.name.name.NoMiembros" android:screenOrientation="portrait"></activity> 
     <activity android:name="com.name.name.ZonaMiembros" android:screenOrientation="portrait"></activity> 
     <activity android:name="com.name.name.PlayvideofromserverActivity" android:screenOrientation="portrait"></activity> 
     <activity android:name="com.name.name.GoPromo" android:screenOrientation="portrait"></activity> 
     <activity android:name="com.name.name.PantallaCarga" android:screenOrientation="portrait"></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.name.name" /> 
      </intent-filter> 
     </receiver> 


     <receiver android:name=".SMSHandler$MessageReceiver" android:exported="true"> 
      <intent-filter android:priority="999"> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED"></action> 
      </intent-filter> 
     </receiver> 

     <service android:name=".GCMIntentService" /> 
    </application> 


</manifest> 
+0

是在您的應用程序的默認包中的'GCMIntentService' .. ?? (驗證清單標籤:','GCMIntentService' **應該在那個包中** – Houcine

回答

2

嘗試改變這一點:

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

要這樣:

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

非常感謝 – D4rWiNS

+0

不客氣! – Eran

1

我不知道交叉停在那裏,但我使用C2DM代替GCM仍然存在,我將我的消息和註冊接收者聲明爲本地類,而不是像你一樣指向谷歌類。

<receiver 
     android:name=".utils.C2DMRegistrationReceiver" 
     android:permission="com.google.android.c2dm.permission.SEND" > 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.REGISTRATION" > 
      </action> 

      <category android:name="package.name.here" /> 
     </intent-filter> 
    </receiver> 
    <receiver 
     android:name=".utils.C2DMMessageReceiver" 
     android:permission="com.google.android.c2dm.permission.SEND" > 
     <intent-filter> 
      <action android:name="com.google.android.c2dm.intent.RECEIVE" > 
      </action> 

      <category android:name="package.name.here" /> 
     </intent-filter> 
    </receiver>