小编use*_*166的帖子

使用EXTRA_PLUGGED获取USB电缆插入IN/OUT事件不起作用

我的目的是保存在首选项Android设备USB /电源线的首选状态:已连接/已断开连接.从开发人员站点我看到有两个Intent用于获取该状态:ACTION_POWER_CONNECTED/DISCONNECTED.所以我使用了与开发人员发布的代码相同的代码:

http://developer.android.com/training/monitoring-device-state/battery-monitoring.html

在监控充电状态的变化部分.

表现

<receiver android:name=".PowerConnectionReceiver">
  <intent-filter>
    <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
    <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
  </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

Java代码

public class PowerConnectionReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) { 

        int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
        boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
        boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;

        Toast.makeText(context, "pvr = " + usbCharge + ", " + acCharge + "," + isCharging, Toast.LENGTH_SHORT).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我插入USB电缆IN/OUT时,广播总是正确地发送并在PowerConnectionReceiver中捕获但总是具有相同的结果(=电缆已拔出).

我用Galaxy Nexus 4.1.1/4.2.1测试了它 - 我总是在Toast中获得2xFALSE(chargePlug = FALSE,usbCharge = FALSE).

为什么 intent.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1)总是返回默认值"-1"?

谢谢.

PS.如果我在Java中注册接收器,一切正常

Intent …
Run Code Online (Sandbox Code Playgroud)

usb android battery broadcastreceiver android-intent

6
推荐指数
1
解决办法
5769
查看次数

"冰淇淋三明治"和WRITE_APN_SETTINGS

有没有人知道如何Ice Cream Sandwich使用WRITE_APN_SETTINGS权限为" " 编写应用程序?WRITE_APN_SETTINGS现在被忽略ICS,代码触摸APN失败.

permissions android apn android-4.0-ice-cream-sandwich

5
推荐指数
2
解决办法
1万
查看次数