ボリソフ:
私は彼らのソースコードと2つのアプリケーションを持っています。私は、アプリケーションのいずれかでボタンを押すと、私は、アプリケーション2のバックグラウンド「」ボタンを押して(MainActivity、それから、特定のアクションを開始していない)にする必要があります。そのため、例えば、次のようなコマンドを実行します
send "press_button2" -> APP2
それを行うための最善の方法は何ですか?
ニコラGallazzi:
それはかなり一般的な質問ですが、あなたはあなたの「APP1」から暗黙の意図を使用し、「APP2」の意図行動を読まなければならないでしょう。手順は次のようになります。
- 、のようなものを、あなたのAPP1内の暗黙的な意図を定義します
val sendIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, "press_button2")
type = "text/plain"
}
startActivity(sendIntent)
- あなたのAPP2には、インテントフィルタを使用して、お好みの活動で指定されたアクションを受け取るためにあなたのマニフェストを設定します。
<activity android:name="ClickActivity">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
- あなたの「APP2」で、あなたの活動に入ってくる意図を扱う、のようなもの:
@SuppressLint("MissingSuperCall")
override fun onCreate(savedInstanceState: Bundle?) {
when {
intent?.action == Intent.ACTION_SEND -> {
if ("text/plain" == intent.type) {
intent.getStringExtra(Intent.EXTRA_TEXT)?.let {
// Update UI to reflect text being shared
if (it == "press_button2"){
myButton.performClick()
}
}
}
}
}
}
また、他のアプリは、あなたの「送信テキストアクションを」管理することができるだろうことに注意してください、そうアンドロイドユーザーにアプリチューが表示されます、あなたがシームレスに2つのアプリを切り替えることができないでしょう。
リファレンスここ