0

なんらかの理由で、AndroidViewClient を使用して外部 Android デバイスに「ドラッグ」コマンドを発行できません。これが私のコードです:

import sys
import os
import time

try:
    sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
    pass

from com.dtmilano.android.adb.adbclient import AdbClient
from com.dtmilano.android.viewclient import ViewClient, View

print 'Connecting to device...'
device, serialno = ViewClient.connectToDeviceOrExit()

 time.sleep(.5)
 AdbClient(serialno='.*').drag((500,1000),(500,100), 1, 10)

私も試してみました

device.drag((500,1000),(500,100), 1, 10)

これも機能しません。(ところで、device.drag() は AdbClient.drag() とどう違うのですか?)

また、上記のエラーは発生しません。すべてが実行され、エラーは見つかりません。画面をドラッグしないだけです。

それでも、タッチ イベントとキーボード イベントは機能します。

device.touch(400,200, 'DOWN_AND_UP')

注: AndroidViewCLient の私のバージョンは 7.0.2 です。私のAndroidデバイスはJellybean 4.1です

編集: 私の Android デバイスの出力:

C:\Users\Me>adb shell input
usage: input ...
       input text <string>
       input keyevent <key code number or name>
       input tap <x> <y>
       input swipe <x1> <y1> <x2> <y2>
4

1 に答える 1

2

問題が見つかりました。AdbClientAPI レベル (バージョン) を取得すると変換されないため、文字列であり、間違ったコマンドが API 16 に送信されるintため、比較はAdbClient.drag()失敗します。これは次のとおりです。

__send(shell:input touchscreen swipe 500 400 100 400 1, checkok=True, reconnect=False)

それ以外の

__send(shell:input swipe 500 400 100 400, checkok=True, reconnect=False)

AVC 7.0.4 で修正される予定です。

于 2014-06-06T19:54:18.967 に答える