問題タブ [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.
android - レシーバーAndroidからのインテントの使用方法
動作するSMSレシーバーがありますが、次を使用して別のクラスをロードしようとすると、
このエラーが発生します:
コンストラクターIntent(SMSReceiver、Class)は未定義です
最初の行と:
メソッドstartActivityForResult(Intent、int)は、タイプSMSReceiverに対して未定義です。
2行目
何が悪いのかについてアドバイスをいただければ幸いです。
android - Android のコールバック関数の設計上の問題
私は現在、wifi 値にアクセスする Android でアプリを開発しています。つまり、アプリケーションはすべてのアクセス ポイントとその特定の信号強度をスキャンする必要があります。値の準備ができたときに呼び出されるBroadcastReceiver
メソッドを上書きするクラスを拡張する必要があることはわかっています。
Android システム自体によって提供されるソリューションが存在する可能性がありますが、私は Android に比較的慣れていないため、助けが必要になる可能性があります。
私が遭遇した問題は、1 つのクラス (ユーザーによって制御されるアクティビティ) を取得したことです。このスキャン結果は、2 つの異なること (最初にデータベースに値を保存するため、または 2 番目に値をさらなる計算に使用するためであり、両方ではない) を必要とします。からのスキャン結果を「転送」するためにコールバック システムを設計する方法BroadcastReceiver.onReceive(Context context, Intent intent)
onReceive(Context context, Intent intent)
ユーザーが意図した操作に?私の最初の解決策は、値を照会するときに wlan に関連するクラスが送信する必要があるユースケース (保存または計算に使用) ごとに列挙型を定義することでした。しかし、それはBroadcastReceiver
拡張クラスに現在の列挙型を保存し、それをクエリ クラスのコールバック関数のパラメータとして使用することを強制します (このクエリ クラスは、バックコールされるときに何を要求したかを知る必要があります)
。 )
それで、誰かこれについて良い考えはありますか?
android - Android: 通知で pendingIntent から起動されるインテントを宣言する際の問題。ブロードキャストレシーバーで行われる
ブロードキャストレシーバーで通知を送信したいと思います。通知により、デフォルトの SMS アプリが起動するはずです。
最終的には、デフォルトのアプリである Handcent や Chomp と同じように、着信テキスト メッセージの独自の通知を作成したいと考えています。
着信SMSのthreadIdを検出するコードがあります。
通知の pendingIntent にアタッチするインテントを作成するにはどうすればよいですか?
以下は、特定のスレッドを開く SMS アプリを起動する方法を示していますが、Intent は初期化時に null ポインターを作成します。アクティビティではなく、broadcastReceiver で初期化されているためですか?
android - BroadcastReceiver を非アクティブに設定する
SMS 受信イベントを受信する Android アプリケーションに BroadcastReceiver をセットアップしました。これは問題なく動作しますが、BroadcastReceiver のオンとオフを切り替えることで、SMS 受信のオンとオフを切り替えられるようにしたいと考えています。onReceive メソッド内に単純なブール値があれば、SMS の受信がオフになっていてもアプリケーションが起動するからです。
これは可能ですか?
乾杯!
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) では問題ありません。
質問:
- なぜこのタイムアウト?これを回避する簡単な方法はありますか?
- マニフェストで BroadcastReceiver を正しく設定しましたか? (このタイムアウトを回避するために) 何かを追加する必要がありますか?
- この種の「Web から更新」機能のサービスを絶対に利用する必要がありますか? (この記事を考慮: http://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/ ) YES の場合 (サービスに切り替える必要があります): 適切なコード スニペット/これのチュートリアル...
いつものように、あなたの助けに感謝します.
H.
android - ブロードキャスト レシーバーから実行中のアクティビティを通知するにはどうすればよいですか?
アクティビティがあり、ブロードキャスト イベントに応答する必要があります。アクティビティが同時にブロードキャストレシーバーになることはできないので、ブロードキャストレシーバーを作成しました。
私の質問は、ブロードキャスト レシーバーからアクティビティを通知するにはどうすればよいですか? これは一般的な状況だと思いますが、このための設計パターンはありますか?
android - アクティビティからBroadcastReceiverにデータを渡すAndroidはnullを示しています
特定の時点でAlarmManagerを使用してBroadcastReceiverを呼び出すアクティビティがあります。BroadcastReceiverを呼び出すときにインテントに文字列を追加しようとすると、もう一方の端では常にnullとして表示されることを除いて、これはすべて正常に機能します。
アクティビティコード:
BroadcastReceiverコード
'teststring'の内容は常にnull
BroadcastReceiverにありますが、何が間違っていますか?
android - エミュレータではAlarmManagerが起動しますが、物理デバイスでは起動しません
AlarmManagerを呼び出すアプリケーションがあります
マニフェストには必須のエントリがあります
MyEventReceiverは次のようになります
アラームがアクティブになったら、MyEventReceiverを起動して、アプリケーションが実行されていない場合でも何かを実行する必要があります。エミュレータではこれが当てはまりますが、実際のデバイスではそうではありません。
例として、エミュレータでMyApplicationを起動し、DDMSで実行中のMyApplicationのプロセスを確認できます。MyApplication内からアラームを追加し、DDMS内でMyApplicationのプロセスを強制終了します。アラームが発生すると、MyEventReceiverが機能し、DDMSにMyApplicationとMyApplication:remoteの2つのプロセスが表示されます。
実際のデバイスでMyApplicationを起動した場合、アラームを追加し、アラームが何も実行されないようになったときにタスクキラーを使用してプロセスを強制終了します。デバイスをデバッガーに接続し、デバイスのタスクキラーの代わりにDDMSを使用してプロセスを停止すると、アラームが発生し、期待どおりに機能します。
誰かがこれが起こっている理由を理解するのを手伝ってもらえますか?アラームがスケジュールされると、デバイスを再起動しない限りアラームが持続するという印象を受けました。アラームを実行する必要があるときに、デバイスは起動しています。
android - 放送受信機にデータを保存する
ブロードキャスト レシーバーでハッシュ テーブルを維持したいと考えています。現在、BroadcastReceiver のライフサイクルを理解していれば、メンバー変数を一掃して殺される可能性があります。BroadcastReceiver での onReceive の前回の実行からハッシュ テーブルを取得するための理想的な戦略は何でしょうか?
android - 登録されている BroadcastReceivers を見つけるには?
着信 SMS を監視するプログラムがあり、それを常に監視したいので、作成した Broadcast レシーバーに Receiver を登録します。問題は、そのレシーバーを登録解除したい場合、登録した元の BroadcastReceiver クラスを知らない限りできないことです。プログラムが停止したときに停止するように設定しても問題ありませんが、ユーザーが指定したときにのみ停止するように受信機を実行し続けたいと考えています。
編集:または、作成したBroadcastReceiverクラスを「保存」する方法があります。これにより、onDestroyが呼び出されたときに保存でき、createが再度呼び出されたときに引き抜くことができます。
これを行う方法はありますか?