我在互联网上找到了这段代码,而且我不知道如何获得此广播接收器的许可..
还是我不需要?
它在SetAlarmActivity类中。
BroadcastReciever br;
private void setup() {
br = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent i) {
Toast.makeText(c, "Rise and Shine!", Toast.LENGTH_LONG).show();
}
};
registerReceiver(br, new IntentFilter("org.example.makwanas.sapalarm") );
pi = PendingIntent.getBroadcast( this, 0, new Intent("org.example.makwanas.sapalarm"),
0 );
am = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));
}
答案 0 :(得分:1)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter = new IntentFilter();
filter.addAction("Some_Broadcast");
registerReceiver(reciever, filter);
}
@Override
protected void onDestroy() {
if (reciever != null) {
unregisterReceiver(reciever);
reciever = null;
}
super.onDestroy();
}
答案 1 :(得分:0)
您已经使用registerReceiver
在代码中注册了接收器,因此您无需在Manifest文件中再次注册。许可是不同的。
参考documentation of registerReceiver
filter - 选择要接收的Intent广播。
因此,您需要提供接收器需要接收广播的意图过滤器。
<强>示例:强>
IntentFilter filter = new IntentFilter();
filter.addAction("SOME_ACTION");
filter.addCategory("SOME_CATEGORY");
您还可以查看此blog以获取更详细的说明和示例。
希望它有所帮助。