0
  1. ブロードキャスト レシーバーを実装し、OnReceive() メソッドで通知マネージャー コードを記述します。
  2. カスタム着信音は通知で再生されています。通知をクリックすると音が止まる

私が失敗した問題、アプリケーションが開いている場合、通知は通知バーに表示されません。通知を期待して、View の UI を更新します [つまり、着信音を停止するための STOP ボタンを表示します。]

通知コード

public void sendNotification(Context context, String title, String message, String fileName)
    {
            final String ns = Context.NOTIFICATION_SERVICE;
            final NotificationManager notificationManager = (NotificationManager)context.getSystemService(ns);
            final Notification notification = new Notification(R.drawable.ic_launcher, context.getString(R.string.SalahClock),  System.currentTimeMillis());

            Intent intent = new Intent( context, Main.class);
            intent.putExtra("isAlarmPlaying", true);

            //Pending event to open our Application Screen when this notification is clicked
            final PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent , 0);

            notification.setLatestEventInfo(context, title, message, contentIntent);
            notification.sound = Uri.parse("android.resource://path.."); 
            notification.flags |= Notification.FLAG_INSISTENT;
            notificationManager.notify(1, notification);
    }

受信時

public void onReceive(Context context, Intent intent) {

serviceHandler = new Handler(context);
         PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
         PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Salah");
         wl.acquire();

         serviceHandler.sendNotification(context, "", "", "");

         wl.release();

    }

ありがとう、
サリック

4

1 に答える 1

3

静的変数を使用できます。

public static boolean sIsActive = false;

プロジェクトのどこにでも、それをtrueon you activityonResume()falseon your activityに設定しますonPause()

受信機よりも確認できます:

if (MyClass.sIsActive) { return; } 

アクティブでない場合は、通知を続行します。

于 2013-05-13T07:33:57.113 に答える