我为来电创建了广播接收器,并在清单文件中注册了接收器。我是新手,所以我无法理解如何在我的MainActivity中的按钮上调用它
public class CallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
String msg = "Phone state changed to " + state;
if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {
String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
msg += ". Incoming number is " + incomingNumber;
// TODO This would be a good place to "Do something when the phone rings" ;-)
}
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
}
}
你可以注册Receiver,我是从我的服务类中做到的....
ServiceInstance.registerReceiver(receiverName, choice "if any action");
你可以用这个UnRegister Receiver ....
ServiceInstance.unregisterReceiver(receiverName);
如果在清单文件中注册广播接收器,则只要事件发生,它就会自动触发。而不是那样,按钮上的广播接收器注册点击:
btn.setOnClickListener{
registerReceiver()
}
override fun onStop(){
fun registerReceiver()
}
private fun registerReceiver(){
//Do the registration here
}
private fun fun registerReceiver() {
// Unsubscribe receiver
}
欲获得更多信息: