�
�hG � � � d Z ddlZddlmZ ddlZddlZddlZddlm a m
Z
mZ defd�Z
defd�Zdefd �Zd
edefd�Zd
edefd�Zdeeef fd
�Zy)u6
应用管理模块 - 提供Android应用管理功能
� N)�Tuple� )�_device�
set_device�
get_device�returnc �J � t j ddgdd�� t j ddgdd�� j } d| vry t j � }|sy
t |� |j d� |j d� |j d
� |j d� t j d� |j y# t j $ r Y yt $ r Y yw xY w# Y �lxY w# Y yxY w# t $ r}dt |� � �cY d}~S d}~ww xY w)un
初始化 uiautomator2,包括安装和启动服务
Returns:
str: 初始化结果信息
�adb�devicesT��check�capture_outputz=Failed to initialize UIAutomator2: ADB service is not runningz8Failed to initialize UIAutomator2: ADB command not found)r �text�devicez6Failed to initialize UIAutomator2: No device connectedzAFailed to initialize UIAutomator2: Could not establish connectionzahttps://github.com/openatx/android-uiautomator-server/releases/download/2.3.1/app-uiautomator.apkzfhttps://github.com/openatx/android-uiautomator-server/releases/download/2.3.1/app-uiautomator-test.apk�com.github.uiautomator�com.github.uiautomator.test� z%UIAutomator2 initialized successfullyzIFailed to initialize UIAutomator2: Service not running after installationz#Failed to initialize UIAutomator2: N)�
subprocess�run�CalledProcessError�FileNotFoundError�stdout�u2�connectr �app_install� app_start�time�sleep�info� Exception�str)r r �es �8/Volumes/dz/code/uiautomator2-mcp/src/mcp_android/app.py�init_uiautomator2r$ s1 � �,>� N��N�N�E�9�-�T�$�O� �.�.�%��!3�D�t�T�[�[���7�"�K� ����� �V� �6�� ���� C�
D���� H�
I�
���1�2����6�7��
�
�1�
� _��K�K�:��G �,�,� S�R� � N�M� N��, ��� _�^��� >�4�S��V�H�=�=��>�s� �C �(D �D �D �)"C3 �7D �C: �C0�#D �%C0�-D �/C0�0D �3C7�5D �:C>�<D �>D � D"�
D�D"�D"c � � ddddddd�} t j ddgdd�� d| d<