web-dev-qa-db-ja.com

エミュレータでBOOT_COMPLETEDブロードキャストレシーバーをテストする方法

emulatorにあるBROADCAST RECEIVERBOOT_COMPLETEDで確認します。

エミュレータでその放送受信機を確認する方法はありますか?エミュレータを再起動してその受信機を確認するにはどうすればよいですか?直接のコマンドはありますか?

前もって感謝します。

41
Chirag

エミュレータにはデバイスのような電源ボタンはありませんので、

エミュレータインスタンスを停止するには、エミュレータのウィンドウを閉じるだけです。

そしてStart/Restart itEclipseのAVD Managerから開始し、BOOT_COMPLETEアクションを使用したBroadcastReceiverが呼び出されますfor sure

AVDを別の方法で起動することもできます。CMDからAndroidSDKのツールに移動し、このコマンドE:\Android-sdk-windows\tools>emulator -avd AVDNAMEHERE

CMDからブロードキャストを送信するには、このコマンドを使用できます。

adb Shell am broadcast -a Android.intent.action.BOOT_COMPLETED -c Android.intent.category.HOME -n package_name/class_name


Android Emulator: Android Emulator および sing Emulator について詳しく読む

54
MKJParekh

基本的に、これは、実行中にAndroid Emulaterでブート完了をエミュレートするために必要なことです:Windowsユーザー:Linuxにも同じことが当てはまります

[〜#〜] steps [〜#〜]:コンソールタイプ

  1. adbシェル

  2. am broadcast -a Android.intent.action.BOOT_COMPLETED

以上です。 詳細な図については下の図を参照

enter image description here

Happy Coding!

41
Fred Ondieki

BOOT_COMPLETEDが2回受信されると、一部のアプリが誤動作する場合があります。代わりに、パッケージのみにブロードキャストを制限します。

adb Shell am broadcast -a Android.intent.action.BOOT_COMPLETED -p com.example.package
28
ejboy

フレーバーを使用している場合は、.コンポーネント名のショートカット表記。

adb Shell am broadcast -a Android.intent.action.BOOT_COMPLETED -n com.companyname.develop/com.companyname.notification.RescheduleLocalNotificationsAtBootReceiver
2
Julio Rodrigues

エミュレータを再起動するには、コマンドラインを開き、adbがあるフォルダーに切り替えて(システムパスにない場合)、次のように入力します。

adb restart

(その後、Strg-Cでコマンドを中止して、cmd行を戻すことができます)

1
Fabian

Lollipopエミュレーターでは、rootとして実行する必要がありました。

adb Shell su root am broadcast -a Android.intent.action.BOOT_COMPLETED

ルートがなければ、コマンドは失敗します-アラームマネージャはブロードキャストを送信しません:

adb Shell am broadcast -a Android.intent.action.BOOT_COMPLETED

Broadcasting: Intent { act=Android.intent.action.BOOT_COMPLETED }
Java.lang.SecurityException: Permission Denial: not allowed to send broadcast Android.intent.action.BOOT_COMPLETED from pid=26595, uid=2000
    at Android.os.Parcel.readException(Parcel.Java:1684)
    at Android.os.Parcel.readException(Parcel.Java:1637)
    at Android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.Java:3537)
    at com.Android.commands.am.Am.sendBroadcast(Am.Java:772)
    at com.Android.commands.am.Am.onRun(Am.Java:404)
    at com.Android.internal.os.BaseCommand.run(BaseCommand.Java:51)
    at com.Android.commands.am.Am.main(Am.Java:121)
    at com.Android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.Android.internal.os.RuntimeInit.main(RuntimeInit.Java:262)
0
peter