よく調べましたが、アクティビティをエクスポートする方法について正確な回答が見つからなかったので、アプリケーションでstartActivityforResult
を起動することができます。他のアプリが呼び出せるようにアクティビティをエクスポートするにはどうすればいいですか?
どのように達成できますか?マニフェストをいくつかの方法で変更する必要がありますか?
よく調べましたが、アクティビティをエクスポートする方法について正確な回答が見つからなかったので、アプリケーションでstartActivityforResult
を起動することができます。他のアプリが呼び出せるようにアクティビティをエクスポートするにはどうすればいいですか?
どのように達成できますか?マニフェストをいくつかの方法で変更する必要がありますか?
あなたは(私はバーコードスキャナから次の例を取った)あなたのマニフェストに意図-フィルタを宣言する必要があります:
<activity android:name="...">
<intent-filter>
<action android:name="com.google.zxing.client.android.SCAN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
次に、同じアクション文字列と意図を作成します。
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
startActivityForResult(intent, code);
Androidでアクティビティを開始する必要があります(複数のアプリが同じアクション文字列を共有している場合は、プルダウンボックスが表示されます)。
Dalmasの回答の代わりに、実際にActivity
をエクスポートして、<intent-filter>
を作成しなくても(カスタムアクションの手間がかかります)。 Manifest
編集あなたActivity
タグで
そうのように:
<activity
android:name=".SomeActivity"
....
android:exported="true" />
重要な部分は、android:exported="true"
あり、このexport
タグは「活動は、他のアプリケーションのコンポーネントによって起動することができるかどうか」を決定します。 <activity>
に<intent-filter>
が含まれている場合、このタグは自動的にtrue
に設定され、それ以外の場合はデフォルトでfalse
に設定されます。あなたが起動しようとしている活動の正確な名前を知っている必要がありますこの方法ではもちろん
Intent i = new Intent();
i.setComponent(new ComponentName("package name", "fully-qualified name of activity"));
startActivity(i);
:次にActivity
これを行う起動する
。
ありがとう、私はBarcodescannerマニフェストを読んで、同じことを見つけました。 :] – Force