Getting unregistered instead of receiving message.

16 views
Skip to first unread message

Anders Metnik

unread,
May 23, 2012, 6:50:45 AM5/23/12
to androi...@googlegroups.com
I have made a Receiver, and then im using Lars Vogels FakeServer to send messages, have also tried Curl though, and it gives same result.

Instead of getting a com.google.android.c2dm.RECEIVE with a message, i am current getting: com.google.c2dm.REGISTATION with an unregister event. 

**My receiver**:

    package dk.lector.cms.c2dm;
    
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import dk.lector.cms.R;
    import dk.lector.cms.StartActivity;
    
    public class C2DMReceiver extends BroadcastReceiver {
    
    private static final String TAG = C2DMReceiver.class.getSimpleName();
    
    @Override
    public void onReceive(Context ctx, Intent intent) {
    Bundle data = intent.getExtras();
    if (data != null) {
    data.isEmpty(); // Forårsager extras bliver pakket ud så toString()
    // virker
    }
    Log.i(TAG, " onReceive(" + intent + "\n" + data);
    
    if (intent.getAction().equals(
    "com.google.android.c2dm.intent.REGISTRATION")) {
    String registration = intent.getStringExtra("registration_id");
    if (intent.getStringExtra("error") != null) {
    Log.i(TAG,
    " Registrering fejlede, prøv igen senere (er Android Marked installeret?)");
    } else if (intent.getStringExtra("unregistered") != null) {
    Log.i(TAG,
    " Enheden er afregistreret. Yderligere serverbeskedder bliver afvist");
    } else if (registration != null) {
    // Send the registration ID to the 3rd party site that is
    // sending the messages.
    // This should be done in a separate thread.
    // When done, remember that all registration is done.
    Log.i(TAG, " Enheden er registreret:\nregistration_id="
    + registration);
    Log.i(TAG,
    " Denne ID skal sendes til din server så serveren kan kontakte enheden");
    }
    
    } else if (intent.getAction().equals(
    "com.google.android.c2dm.intent.RECEIVE")) {
    if (data.getString("msg") != null) {
    if (!data.getString("msg").equals("")) {
    // Aktiviteten kører ikke. Start den og send data
    // meddelelsen med i extra
    Intent i = new Intent(ctx, StartActivity.class);
    i.putExtras(data);
    
    // Kode til at starte aktiviteten direkte - ikke så
    // brugervenligt!
    // i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    // ctx.startActivity(i);
    
    // Opret en notifikation i stedet
    PendingIntent pi = PendingIntent.getActivity(ctx, 0, i, 0);
    
    Notification n = new Notification(
    R.drawable.ic_noti_lector, "Meddelelse fra skyen",
    System.currentTimeMillis());
    n.setLatestEventInfo(ctx, "Meddelelse fra skyen",
    data.getString("msg"), pi);
    
    NotificationManager nm = (NotificationManager) ctx
    .getSystemService(Context.NOTIFICATION_SERVICE);
    nm.notify(42, n);
    }
    }
    
    if (data.getString("newData") != null) {
    Log.i(TAG,
    "newData tag(shared prefs) set to true : "
    + data.getString("newData"));
    OurPreferences prefs = new OurPreferences(ctx);
    prefs.setNewData(true);
    }
    }
    }
    }

**My Manifest**
  

      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="dk.lector.cms"
            android:versionCode="1"
            android:versionName="1.0" >
        
            <permission
                android:name="dk.lector.cms.permission.C2D_MESSAGE"
                android:protectionLevel="signature" />
        
            <uses-sdk
                android:minSdkVersion="8"
                android:targetSdkVersion="10" />
        
        <uses-permission android:name="dk.lector.cms.permission.C2D_MESSAGE" />
        <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.SET_WALLPAPER" />
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    
        <application
            android:debuggable="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
            <receiver
                android:name="dk.lector.cms.c2dm.C2DMReceiver"
                android:permission="com.google.android.c2dm.permission.SEND" 
                android:enabled="true">
                <intent-filter>
                    <action android:name="com.google.android.c2dm.RECEIVE" />
    
                    <category android:name="dk.lector.cms" />
                </intent-filter>
    
                <intent-filter >
                   <action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
                   <category android:name="dk.lector.cms"/>
                </intent-filter>
            </receiver>
           
        <activity
            android:name="StartActivity"
            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=".menu.MenuActivity"
            android:screenOrientation="portrait" >
        </activity>
    
        <provider
            android:name=".data.TestAppContentProvider"
            android:authorities="dk.lector.cms.TABLES" >
        </provider>
    
        <activity android:name=".c2dm.MeddelelserFraServer" >
        </activity>
        <activity android:name=".social.SocialFeedActivity" >
        </activity>
        <activity android:name=".notification.NotificationDisplay" >
        </activity>
        <activity android:name=".store.cammode.StoreLocatorCamModeActivity" >
        </activity>
        <activity android:name=".store.StoreLocatorMapActivity" >
        </activity>
        <activity
            android:name="dk.lector.mobile.data.preload.PreloadActivity"
            android:screenOrientation="portrait" >
        </activity>
    
        </application>

</manifest>

**my registration method**

private void register(){
    Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
    registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent("com.google.android.c2dm.intent.REGISTER"), 0)); // boilerplate
    registrationIntent.putExtra("sender", "lector...@gmail.com");
    startService(registrationIntent);
}

**my relavant logcat** register, fakeserver send, and "receive/unregister"
1

        05-23 09:23:10.415: I/C2DMReceiver(1427):  onReceive(Intent { act=com.google.android.c2dm.intent.REGISTRATION cat=[dk.lector.cms] cmp=dk.lector.cms/.c2dm.C2DMReceiver (has extras) }
    05-23 09:23:10.415: I/C2DMReceiver(1427): Bundle[{registration_id=APA91bGFvcIAP-GI_LwBXrdhMXiQiSmzHhBr3OPpi3sSciYkCAIhsm6EcuAl0suNj0JasX3lDaGlEumJSG9eVRlJml4Vb1ZdDiURaniRv0w9a6VwKS3hKQdyhr-YaabJiG6j6BkCWD1_ur1KGm5NPHUJnLDmMmlZtQ}]
    05-23 09:23:10.415: I/C2DMReceiver(1427):  Enheden er registreret:
    05-23 09:23:10.415: I/C2DMReceiver(1427): registration_id=APA91bGFvcIAP-GI_LwBXrdhMXiQiSmzHhBr3OPpi3sSciYkCAIhsm6EcuAl0suNj0JasX3lDaGlEumJSG9eVRlJml4Vb1ZdDiURaniRv0w9a6VwKS3hKQdyhr-YaabJiG6j6BkCWD1_ur1KGm5NPHUJnLDmMmlZtQ
    05-23 09:23:10.415: I/C2DMReceiver(1427):  Denne ID skal sendes til din server så serveren kan kontakte enheden


2

    05-23 09:34:53.115: E/AUTH(1804): DQAAAL4AAAD3W6L4bYJb8bO9_MDl7J4k_BDH-g1fm5MZ2v77rnwICYA9Hvgj2Vi5RIfOfpiGUpR7qUfI1MWmhPnQgr3jFj9R8wFBXQsMmyVGE7uqweWr7ArpAydNuLwLDkf5QIuBnVfuSb1TyEamLfZrJNYLHHYmIZr_7xmM9y6_g_dGKiBqDcE1zMqcPi0nWPNkCPX-dGlg1OhjIIEfu8ZMpxnm6M5jmJdb5l6yogcMteAD6ws157_-wBDWVRoMJx1g0mx__y4
    05-23 09:34:55.306: E/Tag(1804): Started sending Message
    05-23 09:34:55.306: E/Tag(1804): DQAAAL4AAAD3W6L4bYJb8bO9_MDl7J4k_BDH-g1fm5MZ2v77rnwICYA9Hvgj2Vi5RIfOfpiGUpR7qUfI1MWmhPnQgr3jFj9R8wFBXQsMmyVGE7uqweWr7ArpAydNuLwLDkf5QIuBnVfuSb1TyEamLfZrJNYLHHYmIZr_7xmM9y6_g_dGKiBqDcE1zMqcPi0nWPNkCPX-dGlg1OhjIIEfu8ZMpxnm6M5jmJdb5l6yogcMteAD6ws157_-wBDWVRoMJx1g0mx__y4
    05-23 09:34:55.795: E/Tag(1804): 200
    05-23 09:34:55.795: I/global(1804): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
    05-23 09:34:55.795: I/Tag(1804): Successfully sent data message to device: id=0:1337758496204580%99b04eaf00000030

3

    05-23 09:34:56.015: I/C2DMReceiver(1761):  onReceive(Intent { act=com.google.android.c2dm.intent.REGISTRATION cat=[dk.lector.cms] cmp=dk.lector.cms/.c2dm.C2DMReceiver (has extras) }
    05-23 09:34:56.015: I/C2DMReceiver(1761): Bundle[{unregistered=dk.lector.cms}]
    05-23 09:34:56.015: I/C2DMReceiver(1761):  Enheden er afregistreret. Yderligere serverbeskedder bliver afvist

Reply all
Reply to author
Forward
0 new messages