Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中找不到闹钟侦听器_Android_Alarmmanager - Fatal编程技术网

在android中找不到闹钟侦听器

在android中找不到闹钟侦听器,android,alarmmanager,Android,Alarmmanager,谁能告诉我闹钟响时我怎么能收到广播 对于来电,我可以使用PhoneStateListener。但对于闹钟,我找不到任何监听器。是的,您可以通过ContentObserver收听闹钟的变化 以下是一些可能对您有所帮助的代码: Uri uri = Settings.System.getUriFor(Settings.System.NEXT_ALARM_FORMATTED); Handler handler = new Handler(); getContentResolver().registerC

谁能告诉我闹钟响时我怎么能收到广播


对于来电,我可以使用PhoneStateListener。但对于闹钟,我找不到任何监听器。

是的,您可以通过ContentObserver收听闹钟的变化

以下是一些可能对您有所帮助的代码:

Uri uri = Settings.System.getUriFor(Settings.System.NEXT_ALARM_FORMATTED);
Handler handler = new Handler();
getContentResolver().registerContentObserver(uri, true, new MyContentObserver(handler));

class MyContentObserver extends ContentObserver
    {
        public MyContentObserver(Handler h) {
            super(h);
        }

        @Override
        public boolean deliverSelfNotifications() {
            return true;
        }

        @Override
        public void onChange(boolean selfChange) {
            Log.d("MyContentObserver", "MyContentObserver.onChange( " + selfChange + ")");
            super.onChange(selfChange);

        }
    }

使用广播接收器

public void setBroadCast() {
    br = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText( getApplicationContext(), "Alarm Handled Here", Toast.LENGTH_SHORT).show();
        }
    }; registerReceiver(br, new IntentFilter( getPackageName() ) );

    pi = PendingIntent.getBroadcast(this, 0, new Intent( getPackageName()), 0);
    am = (AlarmManager) getSystemService( Context.ALARM_SERVICE );
}
请参阅本帖

或者您可以阅读文档

干杯