2012年8月14日火曜日

非root環境でADB経由でアプリを終了する

アプリをADB経由で終了するには
adb shell kill <PID>
とすれば良い。

しかし、これにはroot権限が必要なので、非root端末には使えない。

だが非root端末でも、ユーザーがアプリ情報画面から強制終了ボタンを押せば終了することはできる。
以下は、それをmonkeyrunnerで実施するコードだ。

UIを占有する必要があるが、一応アプリを終了する事ができる。

monkeyrunner killhoge.py

from com.android.monkeyrunner import (
        MonkeyRunner, MonkeyDevice, MonkeyImage )
import time

device = MonkeyRunner.waitForConnection()

#対象のアプリのパッケージ名
package = 'com.sample.hoge'

#強制終了ボタンの位置と、OKボタンの位置。デバイス依存
exitButton = [130, 180]
okButton = [130, 550 ]

#アプリ情報画面を呼び出し
device.startActivity(
        action='android.settings.APPLICATION_DETAILS_SETTINGS',
        uri='package:'+package)
time.sleep(1)
device.touch( exitButton[0], exitButton[1], MonkeyDevice.DOWN_AND_UP)
time.sleep(1)
device.touch( okButton[0], okButton[1], MonkeyDevice.DOWN_AND_UP)


0 件のコメント:

コメントを投稿