如何在用户收到来电时获得指示?
我还希望在应用程序未运行时获得指示。
答案 0 :(得分:0)
嗨,你必须使用广播接收器
public class TestServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
TelephonyManager telephony = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
int state = telephony.getCallState();
String incomingNumber =
intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
Log.d("@@@@@@@@@@@@@@@@@@@@@@@@@TestServiceReceiver", "IDLE");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d("@@@@@@@@@@@@@@@@@@@@@@@@@TestServiceReceiver", "OFFHOOK");
break;
case TelephonyManager.CALL_STATE_RINGING:
Log.d("@@@@@@@@@@@@@@@@@@@@@@@@TestServiceReceiver", "RINGING");
break;
}
}
在清单文件中,您必须声明接收器
<receiver android:name=".TestServiceReceiver"><intent-filter><action android:name="android.intent.action.PHONE_STATE"/></intent-filter></receiver>
现在取消一些权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permission android:name="android.permission.CALL_PRIVILEGED"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
最后,您可以通过电话进行任何操作