在我的应用程序中,我正在尝试像这样监听ACTION_POWER_CONNECTED意图:
<service android:name=".myService">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
</intent-filter>
</service>
我假设我可以通过telnet向模拟器发送“power ac on”命令来测试这个,但是,我的服务似乎没有收到意图。我能够很好地使用这种方法接收BATTERY_LOW意图。
我注意到这条消息:http://groups.google.com/group/android-developers/msg/84e968734c51d50e表明您无法使用模拟器对此进行测试,但是它已经有几个月了,其中的链接似乎已经过时了,我不知道有一个方便测试的设备。
任何人都可以确认吗?您是否能够使用来自telnet的命令接收此意图?感谢。
答案 0 :(得分:3)
我能够证实这一点。您可以使用广播接收器获得Power Connected事件。
<receiver android:name=".MyReceiver" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
来自telnet的命令是:
power ac on
答案 1 :(得分:2)
我也可以确认用power ac on
广播这些意图在模拟器上工作。另外我想补充一点,你必须为模拟器选择正确的telnet端口。起初我尝试了adb telnet端口,但当然它是模拟器实例之一(通常是5554)。
所以telnet localhost 5554
应该这样做。该端口也显示在模拟器的标题栏中,或者您可以使用netstat -lntp |grep emulator
获取linux下的端口。这也是一个很好的howto。