Android :: Registering For C2DM Framework
Sep 5, 2010
I'm trying to test the C2DM framework. I got the confirmation email a couple of days ago and then tryied to create a client that could register. For that purpose, I created a simple client following the steps described in this tutorial:
http://code.google.com/intl/es-419/android/c2dm/index.html.
The Android manifest file contains among other things this code:
<permission android:name="com.bilthon.ufrj.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.bilthon.ufrj.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET"/>
<receiver android:name=".C2DMReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter> <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.bilthon.ufrj" /> </intent-filter>
<intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.bilthon.ufrj" /> </intent-filter> </receiver>
And then, the main activity launched when the program starts has the following code:
Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0));
// boilerplate registrationIntent.putExtra("sender","mytestemail@gmail.com");
Log.d("WelcomeScreen","mytestemail@gmail.com");
startService(registrationIntent);
I also registered a google account on the AVD running my client, as they said it was required. But the problem is that I cannot get the broadcast receiver to "wake up". I don't know what could be wrong. By analysing the logs, I can see that the registration intent is created and apparently used correctly, but the receiver code just never is executed, what could be wrong?
View 3 Replies
Jul 30, 2010
its not that big deal but i found a Syntax error in the code for C2DM Registering from this site registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0); where they missing the end ")" and here's my magical fix :) registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0));
View 2 Replies
View Related
Sep 21, 2010
I am using the Emulator of version 8. and when i am trying to register the Android Application then it will gives the null registration ID. Please help me to resolve this issue. How can i register the Android Application with C2DM.My code is to register the App.
Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
registrationIntent.putExtra("app", PendingIntent.getBroadcast(startCode.this, 0, new Intent(), 0)); // boilerplate
registrationIntent.putExtra("sender", "12786@gmail.com");
startService(registrationIntent);
handleRegistration(getApplicationContext(), registrationIntent);...............
View 1 Replies
View Related
Aug 20, 2010
I looked all over the web and in this group for a solution but I don't seem to have any luck. I'm probably not the only developer that needs to try C2DM on the emulator so a solution to this could be quite useful. First of all let me say that I'm running the latest Google APIs 8 rev 2 as AVD which should have all the necessary magic to allow me to run C2DM (it even has all the market components to run the LVL). I tried both Chrome to Phone and Jumpnote and it was impossible to make the C2DM service work. - Chrome to Phone fails when trying to connect from the Android app running on the emulator with a "Error: Unable to connect". On the Chrome to Phone site they recommend that Talk should be tried first and that the Market should be available (none of these come in the emulator image and I'm not sure if I should even try to install them on the emulator). - Jumpnote does not synchronize automatically and gives me an error: "Error calling remote note sync RPC" (when I do a manual sync I can see the docs being synchronized but looks like C2DM, which enables the auto sync, is broken). I also heard a comment that maybe port forwarding via adb could be necessary (but I'm really not sure this makes any sense).
View 5 Replies
View Related
Jul 7, 2010
We are looking for possibility of extend C2DM to other platform such as WM. And want to check the technology or protocol behind android 2.2 Cloud to Device Messaging.
View 2 Replies
View Related
Aug 16, 2010
I'd like my Android app to receive notification when new messages arrive in my gmail account. I realize that the Android gmail client does not broadcast notification when it receives messages. Instead I want to utilize the gmail server's Cloud to Device Messaging capabilities to do this. I read the article at http://code.google.com/android/c2dm/ - the only "missing piece" for me is to understand how my app sends a
registration ID to the gmail server. Can someone please point me in the right direction?
View 1 Replies
View Related
Aug 19, 2010
Is C2DM one way communication? Is it always from "cloud2Android"? Is it possible to work from Windows2Cloud?
i.e. Is there a way to send messages from Cloud to PC?
View 5 Replies
View Related
Jul 6, 2010
I am playing around with C2DM service. What I am concerned about is that I cannot test my device-side application from Android 2.2 emulator. The application was built more or less according to http://code.google.com/android/c2dm/index.html doc, but when register intent is sent from application, Logcat shows this: Unable to start service Intent { act=com.google.android.c2dm.intent.REGISTER (has extras) }: not found I also tried to run chrometophone and jumpnote applications and the result is the same when registring device. Any ideas? Is it possible to test C2DM service from Android emulator?
View 9 Replies
View Related
Oct 18, 2010
I'm adding Android C2DM to a Android library project. I started with the com.google.android.c2dm package that is included with JumpNote and Chrome To Phone. In order to use this package, you have to subclass the C2DMBaseReceiver service which takes the Sender Id as an argument to it's constructor. In JumpNote, this argument is initialized using a hard-coded static variable in a config class. However, in an Android library project, which may be used by multiple concurrently running apps I don't think I can use a hard-coded static variable (that is, I believe it could lead to problems when/if multiple apps are trying to access/modify the static variable). I tried to think of a way to initialize the Sender Id without using a static variable and am stumped so far.The obvious solution would be to use the Manifest or a Resource string or a combination of the 2. For example, in strings.xml I might have a "ac2dmSender" string, which is accessed in a meta-data child of the C2DMReceiver service declaration in the manifest. However, it seems that you cannot get a reference to the PackageManager or ResourceManager from a static context, so there is no way for me to then retrieve the meta data in such a way as to pass it in to the constructor of C2DMBaseReceiver.
View 1 Replies
View Related
Sep 24, 2010
Has any one implemented C2dm successfully,
then please send the code, how to get registration_id form c2dm server for our application.
View 2 Replies
View Related
Aug 2, 2010
When i open jumpNote project in eclipse,i encounter some mistakes like the following description. many variables related with c2dm like
Config.C2DM_ACCOUNT_EXTRA,
Config.C2DM_MESSAGE_SYNC,
Config.C2DM_SENDER etc
*cannot be resolved.*
i uses the latest sdk(2.2).
any one konws the reasons, i think that if i miss some jar files?
View 3 Replies
View Related
Apr 23, 2010
I'm a student developer. I have developed few apps for Android, I wanted to publish them in the Android Market, but I don't have access to Credit Card for sign up process as Banks won't issue credit cards for students (people with no income). Is there any alternative for this?
View 4 Replies
View Related
Nov 5, 2010
I've been messing around with C2DM and have a nice little app working perfectly in the Emulator. I send a message from my app server to Google's C2DM servers, the message will arrive on the emulator and my app would respond appropriately.
My problem now is running the app on my smartphone (a Nexus One). The app runs fine and registers for C2DM with Google and then forwards it's rego ID to my application server. This is all working as expected. Problem is, when I send a message from my app server to the phone, my app never receives the message. After some investigation I found out
that the message reaches the phone, but the C2DM subsystem seems to be forwarding the message to the Google Talk app and not MY app.
Has anyone seen this behavior before? Can anyone give hints on what to look for to solve this? I was assuming that if the registration messages where forwarded to my app, then everything else should be as well.
View 1 Replies
View Related
Aug 2, 2010
i may get flamed for this question, but help me do it right. I was downloading images from a website and putting them into a database, and then displaying them in an imageview. well to reduce the size of my database, i changed from an imageview to a webview and now only do a Webview.Loaddata(ImageLink). all of this is contained within a listactivity.my problem seems to be that for whatever reason now i dont seem to be capturing the Listclick event any longer
View 2 Replies
View Related
Oct 6, 2009
I'm trying to create application fixing problem with audio volume in headset/handset(I cannot find such application in the market).There is ACTION_HEADSET_PLUG intent,but I cannot register it in manifest. Registering it using registerReceiver does not make sense becouse app should be run always when headset is plugged/unplugged, app will also have no GUI/Activity.
View 4 Replies
View Related
Apr 4, 2010
The better keyboard application is better than the stock keyboard in almost every way. But there is one big problem with it that I've found, and that's that it has trouble registering two nearby keys tapped in rapid succession, often registering neither of them. If I try and type "that" with two fingers, I'll often just get "th"-- it interprets left thumb pressing "a" and right thumb pressing "t" as... nothing, I guess.
View 16 Replies
View Related
Dec 16, 2009
How can I register a sync-service programmatically? For example:
<service android:exported="true" android:name="com.example.test.SyncService">
<intent-filter> <action android:name="android.content.SyncAdapter" />
</intent-filter> <meta-data android:name="android.content.SyncAdapter" android:resource="@xml/syncadapter" /> </service>
How would I register this service at run-time?
View 4 Replies
View Related
Aug 4, 2010
How can I open a context menu for a view without registering it using registerForContextMenu()?
My activity overrides onTouchEvent to detect motion, and if I use registerForContextMenu() it stops working. I'm detecting a long press, so I'd like to forward that request to a method that would build the menu for me, but don't know if it can work that way.
View 2 Replies
View Related
Sep 6, 2010
I am trying to understand the main differences between registering a BroadcastReceiver in the Manifest and registering it programmatically...
My understanding is basically as follows - would appreciate someone correcting my points if I am missing something.
Registered in Manifest:
- The OS will magically find and instantiate your class if needed, calling the onReceive() method, regardless what the running state of your application was
- Your receive will only get called once per broadcast (i.e. You can consider that registering in the manifest is like registering your 'class' for receiving the broadcast - and the broadcast instantiates your class as needed) (??)
Registered Programmatically:
- registering in code means that you are registering instances of your class to receive broadcast messages (i.e. if your code is a little sloppy, and you manage to register several times, you will end up with multiple BroadcastReceiver instances all having their onReceive() called for a broadcast
- to deregister, you need to deregister the specific BroadcastReceiver instance that you previously registered
- if your application gets destroyed by the OS, your onReceive() method will not be called for a broadcast
View 1 Replies
View Related
May 6, 2010
Essentially my problem is this, I open my Activity. It binds to a local service that "appears" to be connected. I get a force close when I press the back button:
"IllegalArgumentException: Service not registered" when unbind is called in my onPause method...
public void onPause() { super.onPause(); if (isFinishing()) {
if (mConnection != null){ Log.i(TAG,"onPause, mConnection" + mConnection.toString());
mDbS.unbindService(mConnection); }else { Log.i(TAG,"mConnection is null");
} The service is bound in onCreate // bind to our sdCard database using our Service Connection
mServiceIntent = new Intent(this,DatabaseService.class);
if(bindService(mServiceIntent, mConnection, Context.BIND_AUTO_CREATE)){
Log.e(TAG, "service bound"); }else{ Log.e(TAG, "service not bound");
} bindService is returning true.
My Service connection is as follows. onServiceConnected is called and goes to completion. onService Disconnected is never called (presumably because my service is in same process)
private ServiceConnection mConnection = new ServiceConnection() {
public final String TAG = "LoadView.ServiceConnection"; //$NON- NLS-1$
public void onServiceConnected(ComponentName className, IBinder service) {
mDbS = ((LocalBinder<DatabaseService>) service).getService(); .....
stuff not relevant.... Log.i(TAG, "finished onServiceConnected");
//$NON-NLS-1$ } public void onServiceDisconnected(ComponentName className) {
Log.e(TAG, "onServiceDisconnectedCalled"); //$NON-NLS-1$ } };
The only thing I do a little different is that I don't use an inner class in my service for the Binder object - I use a separate class. This is mostly because I have several databases and wanted code I could reuse and set up simply rather than worry about all the ins and outs and memory leak issues.
import android.os.Binder; import android.util.Log;
public class LocalBinder<S> extends Binder { private String TAG = "LocalBinder";
private S mService; @SuppressWarnings("unused") private LocalBinder() {
} public LocalBinder(S service){ mService = service;
} public S getService() { return mService;
} public void finalize(){ mService = null;
try { //TODO reinstate this after Issue 8046 is resolved
//super.finalize(); } catch (Throwable e) { Log.e(TAG,"Unable to finalize Binder");
} } }
View 2 Replies
View Related
Aug 13, 2010
I want to run some code when an app is launched, so my broadcast receiver has to be notified when user open any app.
View 1 Replies
View Related
Nov 24, 2010
Contact email *
Email address we should contact when you've been whitelisted:
aaa@gmail.com
Role account email *
Google Account ID that will be used for sending messages to C2DM:
bbb@gmail.com
I register from my app and sender id (bbb@gmail.com) to c2dm service and i get registration_id. After that my third party server must get ClientLogin authentication using email and password. From which email? The whitelisted email (aaa@gmail.com) or sender id (bbb@gmail.com)?? I try both email and from this process i got authorization_id. But when i use the registration_id and authorization_id to send message to C2DM Server, i got response codes 401 Unauthorize. I use authorization_id from whitelisted email (aaa@gmail.com) and sender id (bbb@gmail.com) but none worked.
View 2 Replies
View Related
Jan 12, 2010
I'm trying to do something in my app where you have to hold your finger on the screen for more than 30 seconds. After about 30 seconds, it stops sending onTouchEvents for that part of the screen, almost like a "dead zone." Tested on a motorola droid, and is there any way to stop this from happening?
View 6 Replies
View Related
Oct 19, 2010
I am trying to register to several proximity alerts. Here's an excerpt:................
View 3 Replies
View Related
May 11, 2010
made a custom list adapter extending the Base adapter. Each item in the list has an imagebutton, 2 textviews and a button. I tried to add the context menu to the list so as to display some options for an item in the list. registerForContextMenu(getListView()); I used a MenuInflater object to inflate the context menu xml file. But on clicking the items in the list nothing shows up or the usual highlighting of the item of list on click isn't shown. Is it that the context menu doesn't work for custom list views? Any help would be much appreciated.
View 1 Replies
View Related
May 15, 2010
I'm creating my first widget and ran into a snag. I have several buttons on this widget and need a way to register an onClick action for each of the buttons. So far I've only found examples where they start a configuration activity from a widget button. Does someone have example code on using buttons in home screen widgets?
View 4 Replies
View Related
Nov 8, 2010
I want to flash my phone back to android 2.1. My phone is in download mode but odin is not picking it up?
View 3 Replies
View Related
Jul 21, 2010
I am currently working on implementing C2DM stuff and have got this far.
1. Register the device and get back a device registration ID 2. The server gets a Client Authorization Token for "ac2dm" service 3. The server then sends a message to the device via C2DM using the registration id and the client authorization code and gets the following "NotRegistered" message back.
Meaning: NotRegistered — The registration_id is no longer valid, for example user has uninstalled the application or turned off notifications. Sender should stop sending messages to this device.
The thing is as soon as i get the registration id i am sending it to my server which is then sending a message via C2DM all within the space of 1 minute. so how can it not be valid?
I have registered for use the C2DM service and i would expect that if i was not registered with Google then i would not get a registration device id right? Although i don't remember getting an email from google saying i was registered apart from that when i registered to be white listed it did say something about being added to a list. Anyway your views and opinions are welcome.
View 5 Replies
View Related
Oct 11, 2010
having weird issue with my ladies phone , the mic isnt picking up any sounds, she says she didnt drop it or anything , im just wondering what it could be
View 9 Replies
View Related
Mar 29, 2010
I downloaded swype, (nexus friendly version from XDA). Ive installed it, and when I open a text field, I can use it.
I can tap the letters to type, but when I swype my finger, the whole keyboard becomes highlighted around the edges. Its not registering the swype, but I registers taps.
View 2 Replies
View Related