注册和取消注册广播

时间:2011-12-21 05:42:04

标签: android

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

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

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

unregisterReceiver(new MyPhoneReceiver());

MyPhoneReceiver是我的brcastreceiver calss名称。如果用户单击on按钮,则onReceive()方法将准备好读取来电号码并显示该号码。如果我单击关闭按钮,则广播将被取消注册。 我的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);


        }
    }
}

我的问题是,当我点击“开启”按钮时没有发生任何事情。当有来电时,它还没有执行onRecive()代码。请帮助我的朋友

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)