端末情報にアクセスするためのツールをPythonistaで実装したくてやってみた。
とはいえ、バッテリー情報を取得するスクリプトはPythonistaにサンプルとして実装されているので、flaskを使ってブラウザから取得できるようにした。
実装は以下の通り。
from objc_util import *
from flask import Flask
app = Flask(__name__)
@app.route('/battery')
def get_battery_info():
UIDevice = ObjCClass('UIDevice')
device = UIDevice.currentDevice()
battery_states = {1: 'unplugged', 2: 'charging', 3: 'full'}
device.setBatteryMonitoringEnabled_(True)
battery_percent = device.batteryLevel() * 100
state = device.batteryState()
state_str = battery_states.get(state, 'unknown')
device.setBatteryMonitoringEnabled_(False)
return 'Battery level: %0.1f%% (%s)' % (battery_percent, state_str)
if __name__ == '__main__':
app.run()
objc_util
でObject-Cのライブラリを使うことができる。
これを使って端末情報を取得してバッテリーの残量を取り出している。
あとはPythonista上でアプリを実行し、Safariからlocalhost:5000/battery
にアクセスすればバッテリーの残量と充電中かどうかの情報が表示される。
Pythonistaをもっと使いこなしたいので、Object-Cとobjc_util
の使い方を調べておきたい。