如何在android中獲取電池的溫度?獲取電池的溫度android
15
A
回答
13
http://developer.android.com/reference/android/os/BatteryManager.html
公共靜態最終字符串EXTRA_TEMPERATURE
額外的ACTION_BATTERY_CHANGED:包含當前的電池溫度的整數。
1
嘗試讀取靜態INT BatteryManager.EXTRA_TEMPERATURE
1
TextView BatTemp;
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent)
{
// TODO Auto-generated method stub
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
};
@Override
public void onCreate(Bundle b)
{
super.onCreate(b);
setContentView(R.layout.activity_main);
BatTemp = (TextView) this.findViewById(R.id.textView8);
this.registerReceiver(this.mBatInfoReceiver,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
6
試試這個:
private mBatInfoReceiver myBatInfoReceiver;
和的onCreate:
private class mBatInfoReceiver extends BroadcastReceiver{
int temp = 0;
float get_temp(){
return (float)(temp/10);
}
@Override
public void onReceive(Context arg0, Intent intent) {
temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
}
};
然後在您的變量聲明定義
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.activity_main);
// ...
// Add this
myBatInfoReceiver = new mBatInfoReceiver();
this.registerReceiver(this.myBatInfoReceiver,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
後來在OnClickListener(調用e.g)
float temp = myBatInfoReceiver.get_temp();
String message = "Current " + BatteryManager.EXTRA_TEMPERATURE + " = " +
temp + Character.toString ((char) 176) + " C";
4
public static String batteryTemperature(Context context)
{
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
float temp = ((float) intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0))/10;
return String.valueOf(temp) + "*C";
}
0
您可以通過此功能讓CPU溫度: 使用sys/class/thermal/temp
命令獲取來自Android設備的CPU溫度。
public float getCpuTemp() {
Process process;
try {
process = Runtime.getRuntime().exec("cat sys/class/thermal/thermal_zone0/temp");
process.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = reader.readLine();
float temp = Float.parseFloat(line)/1000.0f;
return temp;
} catch (Exception e) {
e.printStackTrace();
return 0.0f;
}
}
在我要點發送引入請求:https://gist.github.com/sajadabasi/7d76379e82d51efd0a24e5829c3ce572
相關問題
- 1. Android的電池溫度正確性
- 2. 獲取結果的電池溫度和單位
- 3. 以編程方式獲取IOS中的電池溫度
- 4. Android硬件電池溫度,傳感器在哪裏?
- 5. 在NativeActivity上獲取Android的CPU溫度
- 6. 如何用小數獲得電池溫度?
- 7. Android設備上的Intent.BATTERY_ACTION_CHANGED時電池的溫度和電壓是多少?
- 8. 如何在Android中獲取CPU溫度
- 9. 如何從cordova-plugin-ble-central獲得BLE服務(即電池電量,溫度)?
- 10. 獲取電池電量
- 11. 獲取電池電壓
- 12. 通過getElementsByClassName獲取溫度轉換爲攝氏溫度取代原始溫度
- 13. 在android中獲取電池信息
- 14. 從JSON獲取溫度
- 15. iOS/Android GPS電池吸取?
- 16. 電池&CPU使用率和溫度測量結果意味着
- 17. 當電池溫度超過限制時通知用戶
- 18. 獲取電池狀態
- 19. 獲取電池級JavaScript
- 20. 在特定代碼後獲取Android上的電池電量
- 21. 如何在Windows中訪問筆記本電腦的電池溫度?
- 22. Android電池電量
- 23. 獲取CMD/POWER Shell中的CPU溫度
- 24. 獲取iOS中的當前溫度
- 25. 如何獲取Linux上的CPU溫度
- 26. 使用服務獲取電池電量
- 27. 獲取電池充電時間
- 28. SocketScan在Swift中獲取電池電量
- 29. android如何獲取mapview上的位置的溫度
- 30. 使用Android SDK僅獲取一次電池電量
什麼是ACTION_BATTERY_CHANGED呢?我必須午餐才能獲得溫度嗎?我是否需要聽系統廣泛的意圖? – Christian 2010-10-22 13:59:19
谷歌是你的朋友:http://www.tutorialforandroid.com/2009/01/getting-battery-information-on-android.html該教程是關於如何獲得電池電量,但與我發佈的文檔鏈接,我相信你可以弄清楚如何獲得電池溫度,只需使用「溫度」而不是「電平」... – Select0r 2010-10-22 14:26:10
@Christian:如果你不想要註冊一個實際的'BroadcastReceiver'至。調用registerReceiver(null,new IntentFilter(Intent.ACTION_BATTERY_CHANGED))',它將返回爲此操作廣播的最後一個Intent。使用額外的'EXTRA_TEMPERATURE'來獲得你想要的值。 – CommonsWare 2010-10-22 14:38:31