繁体   English   中英

注册和取消注册广播

[英]register and unregister broadcast

我要创建一个应用程序。通过我的应用程序用户可以读取传入的电话号码。我的活动有两个按钮:打开和关闭。 如果用户单击打开按钮,则将执行以下代码。

IntentFilter filter=new IntentFilter(TelephonyManager.EXTRA_STATE);
registerReceiver(new MyPhoneReceiver(), filter);

并且,如果用户单击关闭按钮,则将执行以下代码。

unregisterReceiver(new MyPhoneReceiver());

MyPhoneReceiver是我的brcastreceiver Calss名称,如果用户单击on按钮,则onReceive()方法将准备读取传入的呼叫号码并显示该号码。同样,如果我单击off按钮,则将取消广播注册。 我的onRecieve()代码是

public void onReceive(Context context, Intent intent) {
System.out.println("am hereeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee");
    Bundle extras = intent.getExtras();
    if (extras != null) {
        String state = extras.getString(TelephonyManager.EXTRA_STATE);
        Log.w("sarath DEBUG", state);
        System.out.println("state is:"+state);
        if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
            String phoneNumber = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
            Log.w("sarath DEBUG", phoneNumber);
            System.out.println("phone no. is:"+phoneNumber);


        }
    }
}

我的问题是当我单击on按钮时没有任何反应。当有来电时,它也没有执行onRecive()代码。请帮助我的朋友

此方法需要AndroidManifest.xml中的权限。 您在应用程序中添加了任何权限吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM