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");
    }
}