2013-08-16 2 views
4

Я пишу приложение, которое регистрирует состояние батареи, но есть проблема с BatteryManager.BATTERY_PLUGGED_WIRELESS. Если я загружаю свой Galaxy S3 с Android 4.0.4 или даже S4 с 4.2.2 на беспроводную зарядную станцию, дисплей приложения 1 (BATTERY_PLUGGED_AC) вместо 4 (BATTERY_PLUGGED_WIRELESS). Телефон отображает всплывающее окно, в котором сообщается о беспроводной зарядке. Так это апи-ошибка?Получить информацию о зарядке беспроводной сети

Можно ли подтвердить это? Есть ли другой способ обхода режима зарядки?

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(); 
    } 
} 
+0

Кажется, это ошибка API от Samsung. Вы пробовали другие телефоны, такие как nexus? – Andres

+0

no i havn't столько телефонов :). что я смущен, мой api не понимает 'BatteryManager.BATTERY_PLUGGED_WIRELESS'. Разве это не в «4.2.2»? – JaMaBing

ответ

-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> 

Надеюсь, это вам помогло. :-)

+3

Похоже, что JaMaBing получает уведомления о подключении к сети только в порядке, суть вопроса заключалась в том, почему они получают статус 1 (BATTERY_PLUGGED_AC) вместо 4 (BATTERY_PLUGGED_WIRELESS). –

+0

Благодарим вас за ответ, но у меня это уже есть. Конечно, я бы знал, если его загрузка, его беспроводная зарядка, когда я ее увижу. Но приложение должно зарегистрировать его, а позже я не знаю этого. Как заголовок сказал: Получите информацию о беспроводной зарядке :) – JaMaBing