5

ボタンのクリックで発信呼び出しが開始されるかどうかをテストするための簡単なテスト ケースがあります。

public void testCalling(){
    IntentFilter callFilter = new IntentFilter();
    callFilter.addAction(Intent.ACTION_CALL);
    callFilter.addCategory(Intent.CATEGORY_DEFAULT);
    callFilter.addDataScheme("tel:");
    ActivityMonitor mMonitor = new ActivityMonitor(callFilter, null, false);
    getInstrumentation().addMonitor(mMonitor);

    mSolo.clickOnText("CALL");

    assertTrue(0 < mMonitor.getHits());
    sendKeys(KeyEvent.KEYCODE_ENDCALL); 
}

Intent が呼び出されますが (発信呼び出しが行われます)、私の ActivityMonitor はそれを登録できません。スタックトレースは

05-28 17:11:09.183: I/ActivityManager(71): Starting activity: Intent { act=android.intent.action.CALL dat=tel:+xxxxxxx cmp=com.android.phone/.OutgoingCallBroadcaster }

助けてください

私が見つけることができた唯一の他のリソースは、Android開発者グループで解決せずに終わったこの議論でした

4

2 に答える 2

3

私は同じ問題を抱えていると思った。後で、ロボティウムが常にヒットする独自のモニターを登録し、私のものを含む他のモニターをブロックしているため、アクティビティモニターが機能しないことがわかりました。

于 2013-07-25T11:57:52.983 に答える
1

同じ問題が発生し、少し遊んだ後、動作するようになりました。

「tel」からコロンを取ります。次に、モニターにヒットするはずです。

    public void testMakeCall(){
        IntentFilter filter = new IntentFilter(Intent.ACTION_CALL);
        filter.addCategory(Intent.CATEGORY_DEFAULT);
        filter.addDataScheme("tel");

        ActivityMonitor activityMonitor = getInstrumentation().addMonitor(filter, null, false);

        makeCall();

        assertTrue(activityMonitor.getHits() == 1);
    }
于 2012-08-22T23:17:09.643 に答える