任何人都能告诉我闹钟响闹时如何收到广播?
对于来电,我可以使用PhoneStateListener。但对于闹钟,我找不到任何听众。
答案 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
欢呼声。