問題タブ [broadcastreceiver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1335 参照

android - レシーバーAndroidからのインテントの使用方法

動作するSMSレシーバーがありますが、次を使用して別のクラスをロードしようとすると、

このエラーが発生します:

コンストラクターIntent(SMSReceiver、Class)は未定義です

最初の行と:

メソッドstartActivityForResult(Intent、int)は、タイプSMSReceiverに対して未定義です。

2行目

何が悪いのかについてアドバイスをいただければ幸いです。

0 投票する
1 に答える
600 参照

android - Android のコールバック関数の設計上の問題

私は現在、wifi 値にアクセスする Android でアプリを開発しています。つまり、アプリケーションはすべてのアクセス ポイントとその特定の信号強度をスキャンする必要があります。値の準備ができたときに呼び出されるBroadcastReceiverメソッドを上書きするクラスを拡張する必要があることはわかっています。 Android システム自体によって提供されるソリューションが存在する可能性がありますが、私は Android に比較的慣れていないため、助けが必要になる可能性があります。 私が遭遇した問題は、1 つのクラス (ユーザーによって制御されるアクティビティ) を取得したことです。このスキャン結果は、2 つの異なること (最初にデータベースに値を保存するため、または 2 番目に値をさらなる計算に使用するためであり、両方ではない) を必要とします。からのスキャン結果を「転送」するためにコールバック システムを設計する方法BroadcastReceiver.onReceive(Context context, Intent intent)

onReceive(Context context, Intent intent)ユーザーが意図した操作に?私の最初の解決策は、値を照会するときに wlan に関連するクラスが送信する必要があるユースケース (保存または計算に使用) ごとに列挙型を定義することでした。しかし、それはBroadcastReceiver拡張クラスに現在の列挙型を保存し、それをクエリ クラスのコールバック関数のパラメータとして使用することを強制します (このクエリ クラスは、バックコールされるときに何を要求したかを知る必要があります)
。 )
それで、誰かこれについて良い考えはありますか?

0 投票する
0 に答える
297 参照

android - Android: 通知で pendingIntent から起動されるインテントを宣言する際の問題。ブロードキャストレシーバーで行われる

ブロードキャストレシーバーで通知を送信したいと思います。通知により、デフォルトの SMS アプリが起動するはずです。

最終的には、デフォルトのアプリである Handcent や Chomp と同じように、着信テキスト メッセージの独自の通知を作成したいと考えています。

着信SMSのthreadIdを検出するコードがあります。

通知の pendingIntent にアタッチするインテントを作成するにはどうすればよいですか?

以下は、特定のスレッドを開く SMS アプリを起動する方法を示していますが、Intent は初期化時に null ポインターを作成します。アクティビティではなく、broadcastReceiver で初期化されているためですか?

Androidで特定のSMSを開く方法

0 投票する
1 に答える
1292 参照

android - BroadcastReceiver を非アクティブに設定する

SMS 受信イベントを受信する Android アプリケーションに BroadcastReceiver をセットアップしました。これは問題なく動作しますが、BroadcastReceiver のオンとオフを切り替えることで、SMS 受信のオンとオフを切り替えられるようにしたいと考えています。onReceive メソッド内に単純なブール値があれば、SMS の受信がオフになっていてもアプリケーションが起動するからです。

これは可能ですか?

乾杯!

0 投票する
3 に答える
17507 参照

android - Service の代わりに AlarmManager と BroadcastReceiver - それは悪いことですか? (タイムアウト)

背景情報:

アプリが閉じられている場合でも、約 1 時間ごとに Web からいくつかのデータを更新する必要があります。データ自体の更新には40秒~1分程度かかります。その後、Serializable としてファイルに保存されます。このファイルは、アプリの起動時に読み取られます。

これは私が今のところ取ったアプローチです(サービスを使用していません)

次のように AlarmManager と BroadcastReceiver を使用します。

私のRepeatingAlarmReceiver_REFRESH_DATA.classは、Web からのデータの更新を処理します。

私が持っているマニフェストで:

問題 :

アラームは時間通りに起動され、更新が開始されますが、約 10 秒後に停止します (タイムアウト):

06-25 11:55:05.278: WARN/ActivityManager(76): ブロードキャスト BroadcastRecord{44bb4348 null} のタイムアウト - receiver=android.os.BinderProxy@44bcc670

06-25 11:55:05.278: WARN/ActivityManager(76): タイムアウト中の受信者: ResolveInfo{44bb42c0 com.cousinHub.myapp.RepeatingAlarmReceiver_REFRESH_DATA p=0 o=0 m=0x0}

06-25 11:55:05.278: 情報/プロセス (76): 信号を送信しています。PID: 819 SIG: 9

06-25 11:55:05.298: INFO/ActivityManager(76): プロセス com.cousinHub.myapp:remote (pid 819) が停止しました。

ps: 奇妙なことに、この「タイムアウト」は、HTC Hero (まだ Android 1.5 - API レベル 4) では約 10 秒後に発生しませんが、Nexus One (2.1-update1) では問題ありません。

質問:

  1. なぜこのタイムアウト?これを回避する簡単な方法はありますか?
  2. マニフェストで BroadcastReceiver を正しく設定しましたか? (このタイムアウトを回避するために) 何かを追加する必要がありますか?
  3. この種の「Web から更新」機能のサービスを絶対に利用する必要がありますか? (この記事を考慮: http://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/ ) YES の場合 (サービスに切り替える必要があります): 適切なコード スニペット/これのチュートリアル...

いつものように、あなたの助けに感謝します.

H.

0 投票する
1 に答える
13669 参照

android - ブロードキャスト レシーバーから実行中のアクティビティを通知するにはどうすればよいですか?

アクティビティがあり、ブロードキャスト イベントに応答する必要があります。アクティビティが同時にブロードキャストレシーバーになることはできないので、ブロードキャストレシーバーを作成しました。

私の質問は、ブロードキャスト レシーバーからアクティビティを通知するにはどうすればよいですか? これは一般的な状況だと思いますが、このための設計パターンはありますか?

0 投票する
1 に答える
3809 参照

android - アクティビティからBroadcastReceiverにデータを渡すAndroidはnullを示しています

特定の時点でAlarmManagerを使用してBroadcastReceiverを呼び出すアクティビティがあります。BroadcastReceiverを呼び出すときにインテントに文字列を追加しようとすると、もう一方の端では常にnullとして表示されることを除いて、これはすべて正常に機能します。

アクティビティコード:

BroadcastReceiverコード

'teststring'の内容は常にnullBroadcastReceiverにありますが、何が間違っていますか?

0 投票する
1 に答える
1690 参照

android - エミュレータではAlarmManagerが起動しますが、物理デバイスでは起動しません

AlarmManagerを呼び出すアプリケーションがあります

マニフェストには必須のエントリがあります

MyEventReceiverは次のようになります

アラームがアクティブになったら、MyEventReceiverを起動して、アプリケーションが実行されていない場合でも何かを実行する必要があります。エミュレータではこれが当てはまりますが、実際のデバイスではそうではありません。

例として、エミュレータでMyApplicationを起動し、DDMSで実行中のMyApplicationのプロセスを確認できます。MyApplication内からアラームを追加し、DDMS内でMyApplicationのプロセスを強制終了します。アラームが発生すると、MyEventReceiverが機能し、DDMSにMyApplicationとMyApplication:remoteの2つのプロセスが表示されます。

実際のデバイスでMyApplicationを起動した場合、アラームを追加し、アラームが何も実行されないようになったときにタスクキラーを使用してプロセスを強制終了します。デバイスをデバッガーに接続し、デバイスのタスクキラーの代わりにDDMSを使用してプロセスを停止すると、アラームが発生し、期待どおりに機能します。

誰かがこれが起こっている理由を理解するのを手伝ってもらえますか?アラームがスケジュールされると、デバイスを再起動しない限りアラームが持続するという印象を受けました。アラームを実行する必要があるときに、デバイスは起動しています。

0 投票する
5 に答える
4597 参照

android - 放送受信機にデータを保存する

ブロードキャスト レシーバーでハッシュ テーブルを維持したいと考えています。現在、BroadcastReceiver のライフサイクルを理解していれば、メンバー変数を一掃して殺される可能性があります。BroadcastReceiver での onReceive の前回の実行からハッシュ テーブルを取得するための理想的な戦略は何でしょうか?

0 投票する
1 に答える
2929 参照

android - 登録されている BroadcastReceivers を見つけるには?

着信 SMS を監視するプログラムがあり、それを常に監視したいので、作成した Broadcast レシーバーに Receiver を登録します。問題は、そのレシーバーを登録解除したい場合、登録した元の BroadcastReceiver クラスを知らない限りできないことです。プログラムが停止したときに停止するように設定しても問題ありませんが、ユーザーが指定したときにのみ停止するように受信機を実行し続けたいと考えています。

編集:または、作成したBroadcastReceiverクラスを「保存」する方法があります。これにより、onDestroyが呼び出されたときに保存でき、createが再度呼び出されたときに引き抜くことができます。

これを行う方法はありますか?