如何使用android.intent.category过滤猴子要测试的特定活动?

fel*_*ipe 13 android monkey android-intent android-monkey

我正在尝试使用猴子练习工具来强调测试我的Android应用程序.

默认情况下,该工具将执行具有类别Intent.CATEGORY_LAUNCHERIntent.CATEGORY_MONKEY根据文档的活动.

package="my.android" 

    <activity android:name=".activities.MyApp">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>        
    <activity android:name=".activities.MyScreen">
        <intent-filter>
            <category android:name="android.intent.category.MONKEY"/>
        </intent-filter>
    </activity>
    <activity android:name=".activities.MySettings"/>
Run Code Online (Sandbox Code Playgroud)

我不想让 Monkey设置MySettings.

在我的实际情况中,这是因为该活动进行了注销.因此,在注销后,无法登录以便继续测试其余的屏幕,这是测试的全部概念.

./adb shell monkey -p my.android -v 500
:Monkey: seed=0 count=500
:AllowPackage: my.android
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
..
    // Allowing start of Intent { cmp=my.android/.activities.MySettings} in package my.android
..
Run Code Online (Sandbox Code Playgroud)

它应该拒绝而不是允许我猜.任何想法如何避免猴子进入我不想要的活动?

Bra*_*don 7

我处理这个问题的方法是将以下内容添加到您不希望猴子测试的活动的onCreate(...)中:

if (ActivityManager.isUserAMonkey()) { finish(); }

这样,如果被猴子测试,活动会立即退出.