我要创建一个应用程序。通过我的应用程序,用户可以读取传入的电话号码。我的活动有两个按钮,打开和关闭。如果用户单击“开”按钮,则将执行以下代码。
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()代码。请帮助我的朋友
答案 0 :(得分:0)
此方法需要AndroidManifest.xml中的权限。您在应用程序中添加了任何权限吗?
答案 1 :(得分:0)