2014-06-02 2 views
0

Я пытаюсь получить Уровень батареи Мобильный телефон с ADF. Я имею в виду, например, если батарея заряжена до пятидесяти, я хочу получить эту ценность.Как получить уровень заряда батареи

Как это можно достичь?

Я не знаю точно, могу ли я достичь этого, используя намерение Android.

Если да, что мне делать?

ответ

1

вот пример кода, который объясняет, как получить батареи информации: http://www.tutorialforandroid.com/2009/01/getting-battery-information-on-android.html

Резюмируя, вещательный приемник для ACTION_BATTERY_CHANGED намерения устанавливается динамически, так как он не может быть получен через компоненту, объявленную в манифестах , только путем явной регистрации для него с помощью Context.registerReceiver().

public class Main extends Activity { 
    private TextView batteryTxt; 
    private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){ 
    @Override 
    public void onReceive(Context ctxt, Intent intent) { 
     int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); 
     batteryTxt.setText(String.valueOf(level) + "%"); 
    } 
    }; 

    @Override 
    public void onCreate(Bundle b) { 
    super.onCreate(b); 
    setContentView(R.layout.main); 
    contentTxt = (TextView) this.findViewById(R.id.batteryTxt); 
    this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
    } 
} 
+0

спасибо. Возможно ли это в ADF mobile также –

0

пытаются использовать это:

private void getBatteryPercentage() { 
    BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() { 
     public void onReceive(Context context, Intent intent) { 
      context.unregisterReceiver(this); 
      int currentLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
      int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 
      int level = -1; 
      if (currentLevel >= 0 && scale > 0) { 
       level = (currentLevel * 100)/scale; 
      } 
      batteryPercent.setText("Battery Level Remaining: " + level + "%"); 
     } 
    }; 
    IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
    registerReceiver(batteryLevelReceiver, batteryLevelFilter); 
    } 

    /* @Override*/ 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     batteryPercent = (TextView) this.findViewById(R.id.batteryLevel); 
     getBatteryPercentage(); 
    } 

и oncreate добавить следующее:

batteryPercent = (TextView) this.findViewById(R.id.batteryLevel); 
     getBatteryPercentage(); 
+0

Показывает тип BroadcastReceiver не найден исключение в adf mobile –

0

ADF Mobile является/Java/Javascript/рамки CSS HTML5 и это зависит от Кордова/Телефон-зазор, поэтому любая функция, которую вам нужно попытаться найти, как это сделать с Кордовой.

Если есть прямой способ сделать это, вы можете включить Javascript-файл в свою функцию ADFMobile, и вы пишете здесь код JC cordova, и его можно вызвать при загрузке страницы или вы можете вызвать его прямо из вашего javaBean ,

см ссылку ниже, чтобы увидеть, как вызвать функцию яваскрипта от бина http://oracleadfmobile.wordpress.com/2013/11/14/amx-activity-indicator/

Но если эта функция не является стандартным Кордова API, и это ваше дело (см how to get battery level in cordova 2.9 when it need?), то вам нужно будет проверить вне этого видео http://www.youtube.com/watch?v=jT4O4Wt9PXw знать, как расширить ADF Mobile с плагином Кордовы.