我有2个应用程序及其源代码。当我在应用程序1中按下按钮时,我需要在应用程序2中后台“按下”按钮(从中开始特定的操作,而不是MainActivity)。因此,例如,执行类似
的命令send "press_button2" -> APP2
最好的方法是什么?
答案 0 :(得分:3)
这是一个相当普遍的问题,但是您必须使用“ APP1”中的隐式意图,并在“ APP2”中读取意图动作。 步骤将是:
val sendIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, "press_button2")
type = "text/plain"
}
startActivity(sendIntent)
<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>
@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()
}
}
}
}
}
}
请注意,其他应用程序也可以管理您的“发送文本操作”,因此android将向用户显示应用程序选择器,您将无法在两个应用程序之间无缝切换。
引用here