D4rWiNS
D4rWiNS

Reputation: 2615

Push Notification receiver android( manifest?)

I am using google push notifications, it worked perfectly until now, At the moment the push notifications doesnt work beacause onRegistered is never launched. I think the problem is in the manifest(since the problem is that the receiver is never called) but I'm not sure

this is my manifest

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

Upvotes: 6

Views: 25288

Answers (2)

MrTristan
MrTristan

Reputation: 740

i'm not sure where the crossover stops, but i'm using C2DM instead of GCM still, and I'm declaring my message and registration receivers as local classes, not pointing to the google classes like you are.

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

Upvotes: 3

Eran
Eran

Reputation: 393831

Try changing this :

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

To this :

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

Upvotes: 4

Related Questions