0

ユーザーが指定した時間に、ウェアラブル アプリでのみ通知を表示したい。

テストのために、サービスを開始するハンドヘルド アプリに BroadcastReceiver を用意し、その時点でハンドヘルドとウェアラブルの両方に通知を表示します。また、ハンドヘルド モジュールとウェアラブル モジュールの間で Message Api 通信が確立されています。これらの 2 つの部分は正常に動作します。

そのため、BroadcastReceiver がトリガーされたときに Message Api を介してメッセージを送信して、ウェアラブル デバイスのみに通知を表示できるかどうかはわかりません。onReceive() メソッドで GoogleApiClient を開始する必要がありますか? または、私がやりたいことを行う他の方法はありますか?

これは私の BroadcastReceiver ですが、そのコードを変更したいと思います。

public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Intent service = new Intent(context, AlarmService.class);
        service.putExtra(AlarmService.INTENT_NOTIFY, true);
        service.putExtra("alarmID", intent.getIntExtra("alarmID", 0));
        context.startService(service);
    }
}

ありがとう!

4

1 に答える 1

0

onReceive 内で GoogleApiClient を開始しないことをお勧めします。onReceive は UI スレッドで実行され、メッセージをウェアラブルに送信すると時間がかかりすぎて、これをお勧めできません。

ユーザーから目標タイムを受け取ったら、ハンドヘルドはまったく関与する必要がないように思えますが、そうですか? ウェアラブルだけが目標時間に何かをしますよね?

もしそうなら、私は次のことをお勧めします:

  1. ハンドヘルド ユーザーが目標時間を指定したら、Messaging API を使用してその値をウェアラブルに送信します。
  2. ウェアラブル アプリがターゲット タイムスタンプを受信すると、ウェアラブル アプリは AlarmManager を使用して、その時点でブロードキャストをトリガーします。
  3. ウェアラブル アプリで BroadcastReceiver をセットアップして、AlarmManger のブロードキャストを受信する
  4. BroadcastReceiver (ウェアラブル アプリ内) で、ウェアラブルで直接通知を生成します。
于 2014-11-14T02:04:00.470 に答える