在android中找不到闹钟监听器

时间:2012-03-14 08:18:26

标签: android alarmmanager

任何人都能告诉我闹钟响闹时如何收到广播?

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

2 个答案:

答案 0 :(得分:0)

是的,您可以通过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);

        }
    }

答案 1 :(得分:0)

使用BroadcastReceiver。

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

请参阅此帖Android Broadcast Receiver

或者您可以阅读文档Broadcast Receiver Documentation

欢呼声。