feat: 检测 Android 设备 PDD 安装状态 (#29)

This commit is contained in:
chengma
2026-08-07 15:54:12 +08:00
parent a6e3fe0417
commit 6d863a1a8a
5 changed files with 569 additions and 79 deletions
+21
View File
@@ -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,