做个记录,获取手机应用(3rd apk或本机应用)开启的摄像头是前摄还是后摄.
因为脚本中有这个需求,但是问了好几个同学,都没有得到很好的方法,后来自己在stack overflow上找到了答案
看来stack overflow大法很不错,很多问题都可以在这里找到答案.
from time import sleep
import subprocess
def get_camera() -> str:
'''返回值说明
front:为前摄
after:为后摄
None: 未开启摄像头
参考:
https://stackoverflow.com/questions/33285634/is-there-a-way-to-get-available-camera-resolutions-from-adb-shell
adb shell dumpsys media.camera > 1.txt
然后从txt里查找Camera ID, 0为后摄,1为前摄
'''
cmd = 'adb shell dumpsys media.camera'
sleep(2)
proc = subprocess.run(cmd, shell=True, encoding='utf-8', capture_output=True)
if proc.returncode == 0:
f = proc.stdout.split('\n')[1:30]
for line_str in f:
if 'Camera ID:' in line_str:
camera_id = line_str.split(',')[0].split(':')[1].strip()
if camera_id == '0':
return 'after'
if camera_id == '1':
return 'front'
return 'None'