first commit
This commit is contained in:
88
globals/alarm.py
Normal file
88
globals/alarm.py
Normal file
@@ -0,0 +1,88 @@
|
||||
import subprocess
|
||||
import os
|
||||
import logging
|
||||
|
||||
|
||||
def push_audio_to_phone(device_id, local_audio_path, phone_audio_path): # 移除默认值
|
||||
"""
|
||||
将本地音频文件推送到手机指定路径
|
||||
"""
|
||||
# 检查本地文件是否存在
|
||||
if not os.path.exists(local_audio_path):
|
||||
logging.error(f"本地音频文件不存在: {local_audio_path}")
|
||||
return False
|
||||
|
||||
# 执行ADB推送命令
|
||||
cmd = ["adb", "-s", device_id, "push", local_audio_path, phone_audio_path]
|
||||
try:
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, timeout=30)
|
||||
|
||||
if result.returncode == 0:
|
||||
logging.info(f"音频文件已推送到手机: {phone_audio_path}")
|
||||
return True
|
||||
else:
|
||||
logging.error(f"推送音频文件失败: {result.stderr.strip()}")
|
||||
return False
|
||||
except subprocess.TimeoutExpired:
|
||||
logging.error("推送音频文件超时")
|
||||
return False
|
||||
|
||||
def play_audio_on_phone(device_id, phone_audio_path):
|
||||
"""
|
||||
控制手机播放指定路径的音频文件
|
||||
"""
|
||||
# 检查文件是否存在于手机
|
||||
check_cmd = ["adb", "-s", device_id, "shell", "ls", phone_audio_path]
|
||||
check_result = subprocess.run(check_cmd, capture_output=True, text=True)
|
||||
|
||||
if check_result.returncode != 0:
|
||||
logging.error(f"音频文件在手机上不存在: {phone_audio_path}")
|
||||
return False
|
||||
|
||||
# 使用am命令播放音频
|
||||
cmd = [
|
||||
"adb", "-s", device_id, "shell",
|
||||
"am", "start",
|
||||
"-a", "android.intent.action.VIEW",
|
||||
"-t", "audio/*",
|
||||
"-d", f"file://{phone_audio_path}"
|
||||
]
|
||||
|
||||
try:
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, timeout=10)
|
||||
|
||||
if result.returncode == 0:
|
||||
logging.info(f"已成功触发手机播放音频: {phone_audio_path}")
|
||||
return True
|
||||
else:
|
||||
logging.error(f"播放音频失败: {result.stderr.strip()}")
|
||||
return False
|
||||
except subprocess.TimeoutExpired:
|
||||
logging.error("播放音频命令超时")
|
||||
return False
|
||||
|
||||
def play_system_alarm(device_id):
|
||||
"""
|
||||
播放系统内置的警报声
|
||||
"""
|
||||
try:
|
||||
# 方法1:使用系统铃声URI
|
||||
cmd = [
|
||||
"adb", "-s", device_id, "shell",
|
||||
"am", "start",
|
||||
"-a", "android.intent.action.VIEW",
|
||||
"-d", "content://settings/system/alarm_alert"
|
||||
]
|
||||
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, timeout=10)
|
||||
|
||||
if result.returncode == 0:
|
||||
logging.info("成功触发系统警报声")
|
||||
return True
|
||||
else:
|
||||
logging.error(f"播放系统警报失败: {result.stderr.strip()}")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"播放系统警报时出错: {str(e)}")
|
||||
return False
|
||||
Reference in New Issue
Block a user