Я вызываю намерение, и пакет является другим приложением, которое я не могу контролировать.Я настроил BroadcastReceiver для прослушивания и получения части данных из намерения.Это прекрасно работает в коде, который я прикрепил.
Моя проблема заключается в том, что теперь мне нужно выполнять различные действия на основе данных, которые я хотел бы передать из действия, вызывающего намерение.
Есть ли способ передать данные из моей деятельности в BroadcastReceiver, который я могу использовать?Любая помощь приветствуется.
Я пытался использовать пакет (putString и getString), но когда намерение запущено, это намерение стороннего производителя, и единственным пакетом являются данные, которые они предоставляютмне.Пакет, который я пытался передать, не существует.
вызов от MainActivity
getTickets.setOnClickListener {
Log.i("Track", "MA1: " + Date().toString())
if (checkOrientation()) {
intent = Intent()
intent.setAction("com.trakitgps.GET_VEHICLE_NUM")
intent.setPackage("com.trakitgps")
val filter = IntentFilter("com.trakitgps.GET_VEHICLE_NUM_RESPONSE")
registerReceiver(receiver, filter)
startActivity(intent)
}
}
BroadcastReceiver
class TrackItReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
when (intent.action) {
"com.trakitgps.GET_VEHICLE_NUM_RESPONSE" -> {
val truckNbr = intent.extras.getString("vehicleNum")
val errorMsg = intent.extras.getString("errorMsg")
val newIntent = Intent(context, TruckTicketsActivity::class.java)
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
newIntent.putExtra("assignedTruck", truckNbr)
newIntent.putExtra("truckError", errorMsg)
context.startActivity(newIntent)
}
}
}
}