0

我在 Android 上使用 C2DM 进行“推送通知”。一切正常。

我的问题是;我可以得到“如果设备有多个同步的 gmail 帐户,哪个用于 C2DM”?

4

1 回答 1

0

请参阅此链接以了解C2DM并在此链接上提供示例。现在您的设备认为它与设备相关。

在下面的代码中,使用的电子邮件 ID 不是特定于设备的。C2DM 使用电子邮件 ID 仅用于服务器和 C2DM 之间的交互,而不依赖于设备。

// 当你的应用程序启动时调用

public void StartRegistrationNotification()
    {

        Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
        registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0));
        registrationIntent.putExtra("sender", "....@gmail.com");
        this.startService(registrationIntent);  

}
// change in Manifest File

<receiver android:name="com.ReceiverC2DM"
        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="yourpackagename" />
        </intent-filter>
        <!-- Receive the registration id -->
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="yourpackagename" />
        </intent-filter>
    </receiver>
    <permission android:name="yourpackagename.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="yourpackagename.permission.C2D_MESSAGE" />
<!-- This app has permission to register and receive message -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
于 2012-04-21T09:07:52.367 回答