2

私はアンドロイドの初心者です。ドキュメントに記載されているサンプルを試してみましたが、プッシュ通知が届かないだけで、通知アイコンは表示されますが、コンテンツとタイトルは表示されません。誰でも私がクリアするのを手伝ってくれますか??????

  1. プッシュ通知はエミュレータで機能しますか?
  2. このサンプルでは、​​「Resultactivity」というクラスを見つけました。
    このクラスを使用する目的は?

私は以下のコードを与えました。

package com.example.pushnotification;

import android.os.Bundle;
import android.app.Activity;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;
import android.view.Menu;

public class Pushactivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pushactivity);

    NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.notification_icon)
            .setContentTitle("Check Notification")
            .setContentText("This is to test push!");

    Intent resultIntent = new Intent(this, ResultActivity.class);

    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
    stackBuilder.addParentStack(ResultActivity.class);
    stackBuilder.addNextIntent(resultIntent);
    PendingIntent resultPendingIntent =
            stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
    mBuilder.setContentIntent(resultPendingIntent);
    NotificationManager mNotificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    int mId = 10;
    mNotificationManager.notify(mId, mBuilder.build());
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.pushactivity, menu);
    return true;
}

}

前もって感謝します

4

6 に答える 6

3

きっとうまくいくでしょう。私はgcmを使用しましたが、エミュレータと実際のデバイスで動作しました。

Android SDK Manager から Google クラウド メッセージングをインストールし、gcm.jar を使用する必要があります。

これは、テストできる最適なチュートリアルです。http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

于 2013-05-23T12:11:28.333 に答える
1

AndroidManifest.xmlファイルを確認してください。( **manifest-package**をパッケージ名に置き換えます)

<uses-permission android:name="android.permission.INTERNET" />
<permission android:name="**manifest-package**.permission.C2D_MESSAGE"
        android:protectionLevel="signature"/>
<uses-permission android:name="**manifest-package**.permission.C2D_MESSAGE"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>

応用...

    <receiver android:name=".C2DMMessageReceiver"
              android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />

            <category android:name="**manifest-package**" />
        </intent-filter>
    </receiver>

</application>
于 2014-05-13T10:10:09.833 に答える
0

私は同じ問題を抱えていて、修正がこの質問であることがわかりました:通知をクリックすると、意図したアクティビティが開始されませんか?

修正は、次の行を変更することです。

PendingIntent resultPendingIntent =
        stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);

PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
                    PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);
于 2014-06-09T18:04:23.837 に答える
0

GCM は、Google API を使用して Android 2.2 を実行するエミュレーターで動作します。

Android 2.2 以降を実行し、Google Play ストア アプリケーションもインストールされているデバイス、または Google API を使用して Android 2.2 を実行するエミュレータが必要です。ただし、Google Play ストアを通じて Android アプリケーションを展開することに限定されません。

于 2013-05-23T14:04:31.820 に答える