-1
if (!share_pref) {

            try {
                GCMRegistrar.checkDevice(CategoryPage.this);
                GCMRegistrar.checkManifest(CategoryPage.this);
            } catch (Exception e) {
                e.printStackTrace();
            }

            final String regId = GCMRegistrar.getRegistrationId(this);
            if (!regId.equals("")) {
                Log.i("GCM_STATUS", "Already Registered with Gcm");
            } else {
                GCMRegistrar.register(CategoryPage.this, Constants1.SENDER_ID);
            }
            Log.e("GCM", "ID----->"+regId);

デバイス ID をアラート ボックスに表示したいのですが、そのためのコードを書きましたが、機能しません。ログ (コンソール) でデバイス ID を取得しています。デバイスの regId ID をアラート ボックスに表示する方法を教えてください。 UI で自分のデバイス ID を確認できます

4

2 に答える 2

0

ご指摘のとおり、ログで GCM サーバーから登録 ID を取得しています。

これは、GCM サーバーから登録 ID を正しく取得していることを意味します。

ALert Box でデバイス ID を取得するとはどういう意味ですか?

UI のどこかに登録 ID を表示しますか?

それとも、GCM から受け取る通知に表示しますか?

UIで表示したい場合は、テキストビューを作成し、登録IDをテキストとして設定します。

または、受信している通知に表示する場合は、GCM Intent サービスの onMessageReceived の共有設定から登録 ID の値を読み取り、その値を通知のテキストに追加する必要があります。

于 2013-08-14T07:53:16.790 に答える
0

GCMRegistrar.register(context, senderIds); の直後に登録 ID を取得することはできません。、したがって、asynctaskでそれを実行し、取得するまで繰り返す必要があります...次のコードを試してください..

if (!share_pref) {
     registerInBackground();
 }
class GcmRegisterTask extends AsyncTask<Void, String, String> {

    @Override
    protected String doInBackground(Void... params) {
        GCMRegistrar.checkDevice(context);
        GCMRegistrar.checkManifest(context);
        GCMRegistrar.register(context, senderIds);

        regId = GCMRegistrar.getRegistrationId(context);
        return regId;
    }

    @Override
    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);


        if (result == null || result.length() == 0 || result.equals("")) {

            registerInBackground();

        } else {
             Log.i("regId=", result + " ==");
        }
    }

 }

    private void registerInBackground() {
    Log.e(TAG, "registerInBackground");
    GCMRegistrar.setRegisteredOnServer(context, false);
    new GcmRegisterTask().execute();
 }
于 2013-08-14T07:35:50.803 に答える