如何获得电池电量

时间:2014-06-02 06:54:14

标签: java android android-intent oracle-adf oracle-adf-mobile

我正在尝试使用ADF获取Mobile的电池电量。我的意思是,例如,如果电池充电达到50,我想获得该值。

如何实现这一目标?

我不知道我是否可以通过使用Android-intent来实现这一点。

如果是,我该怎么做?

3 个答案:

答案 0 :(得分:1)

这是一个代码示例,解释了如何获取电池信息:http://www.tutorialforandroid.com/2009/01/getting-battery-information-on-android.html

总结一下,动态设置ACTION_BATTERY_CHANGED意图的广播接收器,因为它不能通过清单中声明的​​组件接收,只能通过使用Context.registerReceiver()显式注册它。 / p>

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));
  }
}

答案 1 :(得分: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();

答案 2 :(得分:0)

ADF Mobile是一个HTML5 / Java / Javascript / CSS框架,它依赖于Cordova / Phone-gap,因此您需要的任何功能都可以尝试使用Cordova进行搜索。

如果有直接的方法,那么你可以在你的ADFMobile功能中包含一个Javascript文件,然后在那里编写cordova JS代码,它可以在页面加载时调用,或者你可以直接从你的javaBean调用它。

请参阅以下链接,了解如何从javaBean调用javascript函数 http://oracleadfmobile.wordpress.com/2013/11/14/amx-activity-indicator/

但是,如果该功能不是标准的Cordova API,而且是您的情况(请参阅how to get battery level in cordova 2.9 when it need?),那么您需要查看此视频http://www.youtube.com/watch?v=jT4O4Wt9PXw以了解如何扩展ADF Mobile Cordova插件。