Трансляционный приемник не получит намерения

Я пытаюсь собрать только базовую комбинацию IntentService / BroadcastReceiver. Да, я знаю, что то, что в настоящее время не очень полезно, но я просто хотел запустить трансляцию. Служба получает мое первоначальное намерение, но получатель не получает возврат Broadcast (отладчик). Другие ответы мне не помогли, и я чувствую, что пробовал все. Это должно быть что-то тривиальное, но я просто не могу на нее наложить.

Отображение активности:

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val filter = IntentFilter() filter.addAction(Constants.BROADCAST_ACTION) filter.addDataScheme("http") val dsl = DownloadStateReceiver() LocalBroadcastManager.getInstance(this).registerReceiver(dsl,filter) buttonLogin.setOnClickListener({ var loginIntent = Intent(this,RawRestJsonPull::class.java) loginIntent.putExtra("userName",editLogin.text.toString()) loginIntent.putExtra("password",editPassword.text.toString()) this.startService(loginIntent) }) } class DownloadStateReceiver : BroadcastReceiver() { override fun onReceive(currentContext: Context, incomingIntent: Intent) { Log.d("?????","d") } } } 

Сервис и постоянные действия:

 class RawRestJsonPull : IntentService("rest" ) { override fun onHandleIntent(incomingIntent: Intent) { var outgoingIntent = Intent(Constants.BROADCAST_ACTION) var status = 0 var userName : String? = incomingIntent.getStringExtra("userName") var password : String? = incomingIntent.getStringExtra("password") outgoingIntent.putExtra(Constants.EXTENDED_DATA_STATUS,status).putExtra("userName",userName). putExtra("password",password) outgoingIntent.flags = Intent.FLAG_INCLUDE_STOPPED_PACKAGES LocalBroadcastManager.getInstance(this).sendBroadcast(outgoingIntent) } } class Constants { companion object { val BROADCAST_ACTION = "com.example.hubert1224.xxx.BROADCAST" val EXTENDED_DATA_STATUS = "com.example.hubert1224.xxx.STATUS" } } 

Manifest:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.hubert1224.xxx"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:windowSoftInputMode="stateVisible"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".RawRestJsonPull" /> <receiver android:name=".MainActivity$DownloadStateReceiver" /> </application> </manifest> 

    Попробуй это

    Сначала сделайте свой BroadcastReceiver статичным или его собственным классом, я не уверен, что Android может работать с нестационарными внутренними классами.

    Во-вторых, я не уверен, почему у фильтра приемника вашего приемника есть

     filter.addDataScheme("http") 

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

    1. Попробуйте удалить схему http из фильтра. 2. Попробуйте добавить категорию по умолчанию к фильтру.