0

我正在尝试使用 ADF 获取移动设备的电池电量。我的意思是,例如,如果电池充电到五十,我想得到那个值。

怎样才能做到这一点?

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

如果是,我该怎么办?

4

3 回答 3

1

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

综上所述,ACTION_BATTERY_CHANGEDintent 的广播接收器是动态设置的,因为它无法通过 manifest 中声明的组件接收,只能通过 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));
  }
}
于 2014-06-02T06:58:14.043 回答
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();
于 2014-06-02T07:18:09.240 回答
0

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

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

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

但是,如果该功能不是标准的 Cordova API,而这就是您的情况(请参阅如何在需要时获取 cordova 2.9 中的电池电量?),那么您需要查看此视频http://www.youtube.com /watch?v=jT4O4Wt9PXw了解如何使用 Cordova 插件扩展 ADF Mobile。

于 2014-06-03T22:21:55.127 回答