Android有来电时如何获取电话号码?
原文由 Saqib Abbasi 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下解决方案帮助我检索了传入和传出的电话号码。
清单中包含的内容:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
2)广播接收器:
<receiver android:name=".AnswerCallBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
BroadcastReceiver 类中包含的内容:
public class AnswerCallBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
if(arg1.getAction().equals("android.intent.action.PHONE_STATE")){
String state = arg1.getStringExtra(TelephonyManager.EXTRA_STATE);
if(state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){
Log.d(TAG, "Inside Extra state off hook");
String number = arg1.getStringExtra(TelephonyManager.EXTRA_PHONE_NUMBER);
Log.e(TAG, "outgoing number : " + number);
}
else if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)){
Log.e(TAG, "Inside EXTRA_STATE_RINGING");
String number = arg1.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Log.e(TAG, "incoming number : " + number);
}
else if(state.equals(TelephonyManager.EXTRA_STATE_IDLE)){
Log.d(TAG, "Inside EXTRA_STATE_IDLE");
}
}
}
}
原文由 Basher51 发布,翻译遵循 CC BY-SA 3.0 许可协议
1 回答564 阅读✓ 已解决
1 回答1.5k 阅读
2 回答1k 阅读
1 回答1.3k 阅读
1 回答1.1k 阅读
1 回答971 阅读
1 回答584 阅读
做一个
Broadcast receiver
说ServiceReceiver
在清单中分配它的动作。将
PhoneStateListener
添加到您的 TelephonyManager,PhoneStateListener 具有覆盖onCallStateChanged()
和传入号码参数。而已。服务接收者.Java