2020/04/07

Android:バッテリー温度の確認方法

下記コマンドでバッテリー状態をダンプできます.

adb shell dumpsys battery

コマンドを実行すると, 次のような出力が得られます.

Current Battery Service state:
  AC powered: false
  USB powered: true
  Wireless powered: false
  Max charging current: 0
  Max charging voltage: 0
  Charge counter: 3160971
  status: 2
  health: 2
  present: true
  level: 95
  scale: 100
  voltage: 4315
  temperature: 358
  technology: Li-ion
  batteryMiscEvent: 0
  batteryCurrentEvent: 32768
  mSecPlugTypeSummary: 2
  ... 続く

出力された中にある temperature: 358 がバッテリー温度になります.
数値は温度(摂氏)の10倍値になるので, 358 なら35.8℃ ということになります.

バッテリー状態を管理するサービスクラスはBatteryServiceです.
バッテリー状態のデータはHealthInfoに定義されています.

以上です.

2019/01/09

Android: /data/data配下にadb push

/data/data/<Application ID>/配下にADBでファイル追加しようとするとpermission errorで失敗した✍

issueはこれ.
https://issuetracker.google.com/issues/37138359

Android Studioに付属してるFileExplorerを使えばファイルを追加できた.
FileExplorerは次の手順を踏んでいた。

# ファイルを一時領域へコピー 
$ adb push hoge /data/local/tmp 

# アプリユーザに切り替え 
$ adb shell 
$ adb run-as <Application ID>

# ファイルコピー 
$ cp /data/local/tmp/hoge /data/data/<ApplicationID>/hoge

## ↑でエラーが出た場合はcatリダイレクトする
$ cat /data/local/tmp/hohe > /data/data/<Application ID>/hoge

FileExplorerのコードはこの辺.

https://android.googlesource.com/platform/tools/adt/idea/+/studio-3.2.1/android/src/com/android/tools/idea/explorer/adbimpl/AdbDeviceDataDirectoryEntry.java#246

https://android.googlesource.com/platform/tools/adt/idea/+/studio-3.2.1/android/src/com/android/tools/idea/explorer/adbimpl/AdbFileOperations.java#225

以上.