Android模拟器可以接收ACTION_POWER_CONNECTED意图吗?

时间:2011-02-28 01:18:42

标签: android emulation android-intent

在我的应用程序中,我正在尝试像这样监听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的命令接收此意图?感谢。

2 个答案:

答案 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