Как создать взаимодействие между двумя приложениями Android - PullRequest
0 голосов
/ 14 января 2019

У меня 2 приложения с их исходниками. Когда я нажимаю кнопку в первом приложении, мне нужно фоновую кнопку «нажать» в приложении 2 (запускать из нее определенные действия, а не MainActivity). Так, например, выполните команду как

send "press_button2" -> APP2

Какой лучший способ сделать это?

1 Ответ

0 голосов
/ 14 января 2019

Это довольно общий вопрос, но вам придется использовать неявное намерение из вашего "APP1" и прочитать действие намерения в вашем "APP2". Шаги будут:

  1. Определите неявное намерение в вашем APP1, что-то вроде
val sendIntent: Intent = Intent().apply {
    action = Intent.ACTION_SEND
    putExtra(Intent.EXTRA_TEXT, "press_button2")
    type = "text/plain"
}
startActivity(sendIntent)
  1. В вашем 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>
  1. В вашем «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()
                        }
                    }
                }
            }

        }
    }

Имейте в виду, что и другие приложения смогут управлять вашим «действием отправки текста», поэтому Android покажет пользователю выбор приложения, а вы не сможете легко переключаться между этими двумя приложениями.

Ссылка здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...