0

私が作成しようとしているプッシュ機能の基本的なアーキテクチャは

1)電話IDを取得してデータベースに保存します

2)サーバーで何かが起こったときだけ、プッシュメッセージを作成しようとします

したがって、アプリがサーバーを呼び出してメッセージを送信しようとする部分は必要ありません。Service クラスで何を拡張する必要があり、どのメソッドを実装する必要があるのか​​ 疑問に思っています。

また、サーバーを使用せずにデバイス ID を取得し、その情報をサーバーに送信することはできますか?

Google クラウド メッセージングを使用しています。

ありがとう!

4

2 に答える 2

1

電話の登録 ID を取得するには、アクティビティで次のことを行う必要があります。

     import com.google.android.gcm.GCMRegistrar;
    private final static String SENDER_ID = "0001234567" // API Key, see comments;

    public class myActivity extends Activity {

        @Override
        public void onCreate(Bundle savedInstanceState) 
        {

            GCMRegistrar.checkDevice(this);
            GCMRegistrar.checkManifest(this);
            regId = GCMRegistrar.getRegistrationId(this);
 if (regId.equals("")) 
        {
             GCMRegistrar.register(this, SENDER_ID);
             Log.i(TAG,"registered a new ID");
        } 
        else 
        {
            Log.i(TAG,"Already Registered");
        }

Google reg は regId に含まれます

マニフェストでこれが必要になります。

<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="my.namespace" />
        </intent-filter>
    </receiver>

my.namespace は、パッケージ名が何であれ等しくなります

于 2012-10-16T20:35:55.170 に答える