2011-12-23 6 views
6

私は次の方法で起動ブラウザでアプリを持っている:私はその活動をキャッチしたい別のAndroidJUnitプロジェクトを持っているブラウザアクティビティをキャッチするには?

Uri uri = Uri.parse(getURL()); 
    Context context = widget.getContext(); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
    intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()); 
    context.startActivity(intent); 

を。

次の手順では、ブラウザを実行しているMYProjectActivityをキャッチできますが、ブラウザをキャッチできませんでした。

Instrumentation instrumentation = getInstrumentation(); 

    // Register we are interested in the authentication activiry... 
    Instrumentation.ActivityMonitor monitor = instrumentation.addMonitor(MYProjectActivity.class.getName(), null, false); 

    // Start the authentication activity as the first activity... 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.setClassName(instrumentation.getTargetContext(), MYProjectActivity.class.getName()); 
    instrumentation.startActivitySync(intent); 

    // Wait for it to start... 
    Activity currentActivity = getInstrumentation().waitForMonitorWithTimeout(monitor, 5); 

誰でもこの方法を知っていますか?

+0

クラスの代わりにIntentFilterをaddMonitor()メソッドに渡し、IntentFilterでIntent.ACTION_VIEWを使用して、ActivityMonitorでブラウザを開始しようとしました。私のコードでは機能しませんでしたが、それは他のいくつかの問題によって引き起こされたものだと思います。 –

+0

Jan、あなたの答えをありがとうございます。<しかし、このアクティビティモニターはstartActivitySyncメソッドに対してのみ機能すると付け加えておきます。私のアプリケーションでは、startActivityを使用しています。このメソッドでは動作しません。 –

答えて

0

私はあなたが要求するが、代替の思考を提供しているなどのブラウザを監視する方法がわからないです:

あなたの理由は、ブラウザを使用するためですが、あなたが代わりにWebViewを使用して検討しているかを比較検討する必要があります?アクティビティに配置してインテントトラフィックを観察できるようになり、必要に応じて詳細なコールバック情報を得るために、サブクラスWebViewを制御できるようになります。

関連する問題