2013-06-26 118 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

我剛更新了答案。 –

相關問題