Как вызвать щелчок или отправить событие при совместном использовании данных в других приложениях на Android?

Я пытаюсь поделиться данными из своего приложения с другим приложением, например, смс или любым другим приложением. У меня есть приложение, в котором мне нужно отправить или поделиться некоторыми данными в таких приложениях, как sms или fb messenger. Используя эту ссылку, я могу открыть приложение и добавить данные в текстовое поле, используя этот код:

Intent sendIntent = new Intent(); sendIntent.setPackage("com.sms or fb"); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); sendIntent.setType("text/plain"); startActivity(sendIntent); 

Используя это приложение, я могу открыть другое приложение и добавить значение в текстовую область, мой вопрос в том, есть ли способ, с помощью которого я могу запускать щелчок или отправить событие для отправки автоматического сообщения в другое приложение, например, смс facebook. Если да, то как я видел приложение Google, где я использовал свой голос, чтобы отправить привет моему контакту whatsapp, чтобы этот метод был там, приложение Google может отправлять сообщение и запускать событие, используя мой голос. Мой вопрос в том, как я могу инициировать отправку события с помощью моего кода Android. Если укоренилась система, я тоже могу ее использовать.

Ни один из ответов даже не близок к тому, что я хочу решить, и ответ не заслуживает награды.

Solutions Collecting From Web of "Как вызвать щелчок или отправить событие при совместном использовании данных в других приложениях на Android?"

Нет официального api для обычных сторонних приложений для имитации взаимодействия с пользователем. Честно говоря, я бы не хотел, чтобы мое приложение дистанционно контролировалось другим приложением. В зависимости от приложения, которое вы хотите контролировать, могут быть некоторые варианты, если эти приложения предлагают свои услуги или сторонники контента другим приложениям. Но вам нужно будет проконсультироваться с их api document, если таковой существует.

Как предлагает @ Томас. Нет официального способа рассказать другому о том, что делать. Для приложений Google 3 приложения раскрывают свое Intent вызывать конкретное действие в своем приложении из Google. Возможно, вы могли бы изучить, как это происходит.

Но есть некоторые возможные решения, такие как приложение, отображающее Intent для запуска действия со стороннего приложения.

Я думаю, вам нужно захватить намерение, которое приложение Google Voice запускает приложение whatsapp / facebook и использует то же намерение с вашего приложения. Чтобы проверить, какие намерения запускаются, используйте adb logcat -b events.

Тем не менее, я чувствую, даже если вы запускаете то же самое намерение, проверка безопасности в принимающем приложении может помешать ему это сделать.

Вам нужно проверить, есть ли у facebook / whatsapp общедоступные API-интерфейсы, чтобы это сделать. Если это невозможно.

Другой подход. Используйте Uiautomator для выполнения щелчка на кнопке других приложений. Но это сложно реализовать, поскольку вам может понадобиться отдельное приложение, которое прослушивает события и запускает код автоматизации.

Я не знаю, работает ли это, но есть приложение SMSButtler, которое автоматически отвечает на получение SMS-сообщений. Хорошо, что приложение является openource, и вы можете загрузить код из этой записи Github .

Я не могу дать вам ответ о вашей проблеме Whatsapp, но я проанализировал код, и я получил этот метод оттуда:

Чтобы автоматически отправлять SMS-сообщение, вам сначала необходимо создать SMSManager

 SmsManager sms = SmsManager.getDefault(); 

А затем просто отправьте текстовое сообщение

 sms.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent); 

Параметр:

  • destinationAddress адрес для отправки сообщения
  • scAddress – это адрес центра обслуживания или null для использования текущего SMSC по умолчанию
  • text тела сообщения для отправки
  • sentIntent если не NULL, этот PendingIntent передается, когда сообщение успешно отправлено или не выполнено.
  • PendingIntent если не NULL, этот PendingIntent передается, когда сообщение доставляется получателю. Необработанное имя отчета о состоянии находится в расширенных данных («pdu»).

Важно. Использование этого метода требует, чтобы ваше приложение имело разрешение android.Manifest.permission_SEND_SMS.

Примечание. Существуют и другие методы этого класса, где вы можете, например, отправлять изображения или другой контент.

Существует сайт / приложение под названием IFTTT (если это так), который может управлять другими sservices и отправлять вам оповещения / электронные письма / etc. Ссылка: https://ifttt.com/

Если вы хотите, чтобы другие приложения запускали события в ваших приложениях, общий способ включает два шага :.

  1. Вашему приложению необходимо предоставить API по образцу Android.

  2. Другие приложения взаимодействуют с вашим приложением, потребляя вышеуказанный API.

Тип API и его реализация зависят от данных и функций приложения. Например, вы можете использовать Content Provider, Intend и Broadcast для предоставления API.

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

Пожалуйста, следуйте официальным инструкциям по андроиду (перечисленным ниже):

Создание приложений с общим доступом к ресурсам: https://developer.android.com/training/building-content-sharing.html

Отправка простых данных в другие приложения: https://developer.android.com/training/sharing/send.html

Получение простых данных из других приложений: https://developer.android.com/training/sharing/receive.html