Victor Khovanskiy Asked:2020-07-23 20:14:11 +0000 UTC2020-07-23 20:14:11 +0000 UTC 2020-07-23 20:14:11 +0000 UTC 捕获来电号码 772 是否可以在 Android 4.0.0+ 上“订阅”来电事件并获取来电号码。之后,执行一些计算(例如,去数据库),并在屏幕上显示一条消息(通知)? java 2 个回答 Voted Best Answer Lex Hobbit 2020-07-24T01:44:23Z2020-07-24T01:44:23Z 您需要BroadcastReceiver注册AndroidMainifest.xml: <receiver android:name=".PhoneStateReceiver"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE" /> </intent-filter> </receiver> 请求权限<uses-permission android:name="android.permission.READ_PHONE_STATE"/>。在Android 6.0(API 级别 23)的情况下 ,您将需要 在运行时请求此权限。 代码PhoneStateReeceiver.java应如下所示: public class PhoneStateReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { try { String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE); String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); if(state.equals(TelephonyManager.EXTRA_STATE_RINGING)){ Toast.makeText(context,"Входящий звонок от " + incomingNumber, Toast.LENGTH_SHORT).show(); } } catch (Exception e){ e.printStackTrace(); } } } Андрій Лянг 2020-01-07T23:59:42Z2020-01-07T23:59:42Z Main 中应该包含什么?(我刚刚开始使用 android studio) 谢谢)
您需要
BroadcastReceiver
注册AndroidMainifest.xml
:请求权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
。在Android 6.0(API 级别 23)的情况下 ,您将需要 在运行时请求此权限。代码
PhoneStateReeceiver.java
应如下所示:Main 中应该包含什么?(我刚刚开始使用 android studio)
谢谢)