2013-06-26 78 views
0

我正在写一个应用程序,当电池电量少于10%的WiFi连接(如果激活)将禁用。这是我想要的,但不是我能够做到的:)。我创建了一个切换,按下了停止wifi的,反之亦然时如果再按一次的WiFi这样打开:当电池电量少于10%时,我如何禁用wifi?

public void getRisparmio(View view) { 
    // is the toggle on? 
    boolean on = ((ToggleButton) view).isChecked(); 

    WifiManager wifiManager; 
    if (on) { 
     wifiManager(WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
     wifiManager.setWifiEnabled(false); 
    } else { 
     wifiManager(WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
     wifiManager.setWifiEnabled(tru); 
    } 
    } 

这样我得到的电池级:

int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL,0); 

什么我想是类似于

public void getRisparmio(View view) { 
    // is the toggle on? 
    boolean on = ((ToggleButton) view).isChecked(); 

    WifiManager wifiManager; 
    if (on) { 
    if (level < 10){ 
     wifiManager(WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
     wifiManager.setWifiEnabled(false); 
    } 
    } else { 
     wifiManager(WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
     wifiManager.setWifiEnabled(true); 
    } 
    } 

这可能吗?由于

+0

检查这里的答案http://stackoverflow.com/questions/14560341/disable-wifi-when-battery-voltage-is-3-4 –

回答

1

如果您要检查电池电量,当你点击按钮:如果您想禁用无线当电池电量不足时

public void getRisparmio(View view) { 

    ..... 
    IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
    Intent batteryStatus = context.registerReceiver(null, ifilter); 
    int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
    if (level<10){ 
     ...... 
    } 
    ....... 
} 

,你可以用这个IntentFilter Intent.ACTION_BATTERY_LOW注册的广播接收器。

public class BatteryReceiver extends BroadcastReceiver { 

    public void onReceive(Context context, Intent intent) { 

      boolean batteryLow = intent.getAction().equals(Intent.ACTION_BATTERY_LOW); 
      if (batteryLow){ 
        .... 
        level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
        if (level<xx) { 
        //call your code 
        //wifiManager.setWifiEnabled(false); 
        } 
      } 
    } 
} 

在你的活动中onResume()您可以注册广播接收器

BatteryReceiver receiver = new BatteryReceiver(); 
IntentFilter inf = new IntentFilter(); 
inf.addAction(BatteryReceiver); 
registerReceiver(receiver, inf); 

记得onPause()注销接收器。

否则,您可以在注册的Manifest.xml

<reciever android:name=".BatteryReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BATTERY_LOW"/> 
    </intent-filter> 
</reciever> 
+0

你能举个例子吗?对不起,我真的很喜欢安卓。我如何在我的情况下实现这个'意图'? –

+0

后来我尝试..但你可以看到我有一个切换按钮..我可以“插入”你的代码在我的按钮在某种方式?可能吗?我想要做的是点击时,如果电池电量(或电池电量)

+0

我刚更新了答案。 –

相关问题