Java 应由报警触发的广播接收器保持未触发状态
我想设置播放音频文件的警报。然而,根据日志,他们没有,警报没有被执行。这是我的代码:Java 应由报警触发的广播接收器保持未触发状态,java,android,broadcastreceiver,android-8.0-oreo,android-alarms,Java,Android,Broadcastreceiver,Android 8.0 Oreo,Android Alarms,我想设置播放音频文件的警报。然而,根据日志,他们没有,警报没有被执行。这是我的代码: <manifest ...> <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<manifest ...>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<application
...>
<service android:name=".S1" />
<activity
...>
...
</activity>
<receiver
android:name=".A1" >
</receiver>
<receiver
android:name=".A2">
</receiver>
</application>
</manifest>
及
在日志中,我看到“报警”,但既没有“播放音频A1”也没有“播放音频A2”
我使用的是华为P20,我遵循了。但他们还是不开火
public class S1 extends Service {
public void al(Class Klasse, long Wann)
{
AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this.getApplicationContext(), Klasse);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT);
alarmMgr.set(AlarmManager.RTC_WAKEUP, Wann, pendingIntent);
Log.i("Debug","Alarm");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
al(A1.class,time.getTimeInMillis());
al(A2.class,time.getTimeInMillis()+(5*1000));
//...
return START_STICKY;
}
}
class A1 extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//...
Log.i("Debug","Play Audio A1");
}
}
class A2 extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//...
Log.i("Debug","Play Audio A2");
}
}