feat: 检测 Android 设备 PDD 安装状态 (#29)
This commit is contained in:
@@ -10,6 +10,7 @@ from typing import Callable, List, Optional, Sequence
|
||||
DEFAULT_ADB_TIMEOUT_SECONDS = 5.0
|
||||
DEFAULT_DEVICE_READY_CHECKS = 8
|
||||
DEFAULT_DEVICE_READY_INTERVAL_SECONDS = 0.25
|
||||
PDD_PACKAGE_NAME = "com.xunmeng.pinduoduo"
|
||||
|
||||
|
||||
class AndroidDeviceSearchError(RuntimeError):
|
||||
@@ -111,6 +112,26 @@ class AndroidDeviceService:
|
||||
)
|
||||
return enriched
|
||||
|
||||
def is_package_installed(
|
||||
self,
|
||||
serial: str,
|
||||
package_name: str = PDD_PACKAGE_NAME,
|
||||
) -> bool:
|
||||
"""查询指定设备是否安装目标包;ADB 失败时抛出可读异常。"""
|
||||
|
||||
self._validate_saved_serial(serial)
|
||||
if not package_name or any(character.isspace() for character in package_name):
|
||||
raise AndroidDeviceSearchError("应用包名格式不正确")
|
||||
|
||||
result = self._run(
|
||||
["adb", "-s", serial, "shell", "pm", "path", package_name],
|
||||
"检测 PDD 应用",
|
||||
)
|
||||
return any(
|
||||
line.strip().startswith("package:")
|
||||
for line in (result.stdout or "").splitlines()
|
||||
)
|
||||
|
||||
def restore_saved_device(
|
||||
self,
|
||||
serial: str,
|
||||
|
||||
Reference in New Issue
Block a user