如何在我的活动中调用广播接收器,以便当我点击按钮时它会激活?

问题描述 投票:0回答:2

我为来电创建了广播接收器,并在清单文件中注册了接收器。我是新手,所以我无法理解如何在我的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();
    }
}
android
2个回答
1
投票

你可以注册Receiver,我是从我的服务类中做到的....

ServiceInstance.registerReceiver(receiverName, choice "if any action");

你可以用这个UnRegister Receiver ....

ServiceInstance.unregisterReceiver(receiverName);

0
投票

如果在清单文件中注册广播接收器,则只要事件发生,它就会自动触发。而不是那样,按钮上的广播接收器注册点击:

btn.setOnClickListener{
   registerReceiver()
}

override fun onStop(){
   fun registerReceiver()
}

private fun registerReceiver(){
  //Do the registration here
}

private fun fun registerReceiver() {
   // Unsubscribe receiver
}

欲获得更多信息:

https://developer.android.com/guide/components/broadcasts

© www.soinside.com 2019 - 2024. All rights reserved.