2013-06-28 59 views
0

有没有办法改变布尔标签?我的意思是,如果电池通过USB充电,我正在控制。如果是,则输出为真。我想在其他方面改变true。可能吗?这是代码:如何更改布尔标签?

public static boolean isPhonePluggedIn(Context context){ 
    boolean charging = false; 

    final Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
    int status = batteryIntent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 
    boolean batteryCharge = status==BatteryManager.BATTERY_STATUS_CHARGING; 

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

    if (batteryCharge) charging=true; 
    if (usbCharge) charging=true; 
    if (acCharge) charging=true; 

    return charging; 
} 
+0

你想改变'真正'的东西..什么? – CRUSADER

+1

这是非常高级的编程,超出了我们大多数:)。严肃的回答 - 布尔人是真的还是假的,就是这样。也许用'isPhonePluggedIn()'显示你在做什么,我们可以帮忙吗? –

+0

以及我想要做什么不打印“真实”,但例如“正在收费”。 –

回答

0

如果你谈论的是显示文本,你可以做到这一点是:

public static String isPhonePluggedIn(Context context){ 
    boolean charging = false; 
    String result = "No"; 
    final Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
    int status = batteryIntent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 
    boolean batteryCharge = status==BatteryManager.BATTERY_STATUS_CHARGING; 

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

    if (batteryCharge) charging=true; 
    if (usbCharge) charging=true; 
    if (acCharge) charging=true; 

    if(charging) result="Yes"; 
    return result; 
} 

所以,你可以设置此字符串的TextView或吐司。

希望它有帮助。

+0

问题是,这是我在一个void方法我不能写回报。 –

+0

@ user2508402该方法已经返回布尔值。它不是空的 –

+0

这部分:'int chargePlug = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1); boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; if(batteryCharge)charging = true; if(usbCharge)charging = true;如果(acCharge)充电=真,则为 ; if(charging)result =“Yes”;'在无效方法内。我现在更改了代码。 –