I’m currently working on a libproject (Android) that should be included inside a few other applications.
Everything is working fine now that I’ve been struggling a bit with Activities and Manifests, exept for the C2DM bit.
I can invoke my different classes fine, but I can’t seem to catch the registration ID (or of course actual messages, but that must be the same problem…)
I think the problem is coming from the filtering in my manifest(s), so if anyone has any advice for me, that would be really helpful.
Here is a copy of receiver part of my manifest (from the apps, not the library, but it’s actually just a copy), but it’s pretty straighforward. I just want to know how I should adapt it in order to invoke the right class in the lib…
<!--
Only C2DM servers can send messages for the app. If permission is
not set - any other app can generate it
-->
<receiver
android:name="com.google.android.c2dm.C2DMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<!-- Receive the actual message -->
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.myapp.lib" />
</intent-filter>
<!-- Receive the registration id -->
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.myapp.lib" />
</intent-filter>
</receiver>
Where com.myapp.lib is my lib package name, and the receiver is in a package named the same (in the lib project, of course).
Thanks in advance for the help, and don’t hesitate to ask for furthers details 🙂
Edit :
I tried with only the lib registered on google C2DM, and also with both app and lib. Same problem
There is a better way of using your C2DM from a library project by using the intent-filter.
The manifest file is the one from the app.
The package for the lib is com.mylib and the one for the app is com.myapp.
There is 2 things to change from the lib manifest.
Both should be you app package and not your lib package.