2

私はAndroidの初心者なので、しばらくお待ちください。

最後に、ペイロードを使用して単純な通知を作成したいGCMを介して単純なWCFRESTAPIからXML結果を取得しました。

@Override
protected void onMessage(Context arg0, Intent arg1) {

    String message = arg1.getStringExtra("payload");
    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    Notification note = new Notification();
    note.tickerText=message;
    note.when=System.currentTimeMillis();
    note.defaults |= Notification.DEFAULT_ALL;

    notificationManager.notify(new Random().nextInt(), note);

}

デフォルトの通知音が聞こえますが、バーに何も表示されません。何が欠けていますか?


私を編集

ノート:

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="17" /> 

ビルダーで通知を作成することについてJeeterの提案を試しましたが、最小のAPI 16が必要ですが、これは良くありません+私のGalaxyNoteテストデバイスは4.0.4です。これはAPI15です。

@Override
protected void onMessage(Context arg0, Intent arg1) {

    String Message = arg1.getStringExtra("payload");
    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    notificationManager.notify(
            new Random().nextInt(),
            new Notification.Builder(this)
                    .setContentTitle(Message)
                    .setContentText(Message).build());

}

public Notification build()
APIレベル16で追加
設定されたすべてのオプションを組み合わせて、新しい通知オブジェクトを返します。


編集II

NotificationCompatビルダーの使用に関するA--Cの提案を試しました。

@Override
protected void onMessage(Context arg0, Intent arg1) {

    String Message = arg1.getStringExtra("payload");
    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

            notificationManager.notify(
            new Random().nextInt(),
            new NotificationCompat.Builder(this).setContentTitle("Message")
                    .setWhen(System.currentTimeMillis())
                    .setDefaults(Notification.DEFAULT_ALL)
                    .setContentText(Message).build());

}

エラーはありませんが何も変わりません。外観のない音が聞こえますが、メッセージはonMessageメソッドに到達しました。

4

1 に答える 1

1

Androidでは、ステータスバーの通知を実際に表示するために、小さなアイコンを設定する必要があります。

ドキュメントから、これらは要件です:

通知オブジェクトには、次のものが含まれている必要があります。

•setSmallIcon()によって設定された小さなアイコン

•setContentTitle()によって設定されたタイトル

•setContentText()によって設定された詳細テキスト

さらに、古いプラットフォーム(Gingerbread以下)では、を表示するために(ドキュメントではコンテンツと呼ばれます)を渡す必要があります。これはプラットフォームの制限です。PendingIntentIntentNotification

表示方法によっては、コンテンツNotificationを設定しないことでアプリがクラッシュし、スタックトレースでその理由が明確になります。Intent

を使用すると、 を介してコンテンツNotificationCompat.Builderを簡単に設定できますIntentNotificationCompat.Builder#setContentIntent()

于 2013-01-27T03:22:28.783 に答える