4

我编写了一个记录电池状态的应用程序,但是BatteryManager.BATTERY_PLUGGED_WIRELESS. 如果我在无线充电站上加载装有 Android 4.0.4 的 Galaxy S3 甚至装有 4.2.2 的 S4,应用程序会显示 1 ( BATTERY_PLUGGED_AC) 而不是 4 ( BATTERY_PLUGGED_WIRELESS)。手机显示一个弹出窗口,提示无线充电。那么它是一个api错误吗?

有人可以证实这一点吗?是否有其他解决方法来获取充电模式?

public class BatteryReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0);
        Toast.makeText(context, errorMsg, Toast.LENGTH_SHORT).show();
    }
}
4

1 回答 1

-1

如果我猜对了,您想知道设备是否正在充电。我认为问题解决方案应该这样写:

public class DataReceiver extends BroadcastReceiver
{

@Override
public void onReceive(Context context, Intent intent)
{
    if(intent.getAction().equalsIgnoreCase(Intent.ACTION_POWER_CONNECTED))
    {
        //do something when device is charging
    }
    else if(intent.getAction().equalsIgnoreCase(Intent.ACTION_POWER_DISCONNECTED))
    {
        //do something when device is not charging
    }
}

}

在 xml 中,接收器将如下所示。

    <receiver android:name=".DataReceiver"
        android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
            <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
        </intent-filter>
    </receiver>

希望对您有所帮助。:-)

于 2013-08-16T12:20:14.850 回答