Я пытаюсь получить обратные вызовы в BroadcastReceiver от IntentSender, когда пользователь завершает действие общего ресурса (копирует ли URL-адрес в буфер обмена или выбирает какое-либо приложение)
Я следовал android документации здесь о том, как определить, когда пользователи заполняют общий доступ в Android Sharesheet. Он работает нормально для всех Android ниже Android 10, но не для Android 10. В Android 10 мой широковещательный приемник не вызывается, когда в селекторе выбран «copy» (но он все еще работает хорошо, если пользователь выбирает другие приложения).
Кто-нибудь знает почему или сталкивается с такой же проблемой? Я не уверен, что проблема указана c для некоторых устройств. Я проверил это с Pixel2 и Huawei P30 (оба с Android 10).
Я создал свой BroadcastReceiver следующим образом:
class MyBroadCastReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
//receiving broadcast here
}
}
Я также объявил свой вещательный приемник в файл манифеста:
<receiver
android:name=".MyBroadCastReceiver"
android:exported="false" />
Вот код, вызывающий диалог CreateChooser:
val shareIntent = Intent(Intent.ACTION_SEND)
shareIntent.type = "text/plain"
shareIntent.putExtra(Intent.EXTRA_TEXT, shareUrl)
val receiver = Intent(this, MyBroadCastReceiver::class.java)
val pendingIntent = PendingIntent.getBroadcast(this, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT)
val intent = Intent.createChooser(shareIntent, "Share url", pendingIntent.intentSender)
startActivity(intent)
Снимок экрана: https://i.ibb.co/477JMPb/Screen-Shot-2563-04-12-at-09-01-10.png
Спасибо.