Широковещательный приемник в режиме ожидания приложения API 28
При использовании широковещательного приемника в версии 21 он работает нормально, но если версия 28 не работает
Что я уже пробовал:
ublic class service_class extends Service { MediaPlayer m; @Override public IBinder onBind(Intent p1) { // TODO: Implement this method return null; } @Override public void onCreate() { //registerReceiver(c,new IntentFilter("A")); m=MediaPlayer.create(this,R.raw.sound); //m.start(); super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { m.start(); // TODO: Implement this method return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { // TODO: Implement this method super.onDestroy(); //m.start(); } }
Широковещательный приемник
public class BroadCastRecevier extends BroadcastReceiver { @Override public void onReceive(Context p1, Intent p2) { if(p2.getAction().equals("android.intent.action.USER_PRESENT")){ Intent i=new Intent(p1,service_class.class); p1.startService(i); Toast.makeText(p1,"service",Toast.LENGTH_LONG).show(); } } }
Манифест Android
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mycompany.notificathon" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:resizeableActivity = "true"> <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".service_class"/> <receiver android:name=".BroadCastRecevier" android:exported="true"> <intent-filter> <action android:name="android.intent.action.USER_PRESENT"/> </intent-filter> </receiver> </application> </manifest>
David Crow
Так в чем же, собственно, проблема?
Mohamed Badaouy
Я использую широковещательный приемник при использовании действия в Манифесте Android, трансляция работает, если это версия 21 или если версия 28 не транслируется
David Crow
Куда же идет призыв registerReceiver()
Я думаю, что вам нужно вызвать его, передав ему экземпляр BroadCastRecevier
.