gpt4 book ai didi

android - 在android上以编程方式获取来电号码

转载 作者:行者123 更新时间:2023-12-04 23:53:16 25 4
gpt4 key购买 nike

我正在尝试使用 android studio 上的广播接收器获取来电信息。
以下是我尝试过的方法:

<receiver android:name=".receivers.IncomingCalls">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>

根据这个接收者的 Intent ,我尝试了:

方法一:
incnumber=intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

方法二:
final String state1 = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
telephony.listen(new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, final String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
incnumber=incomingNumber;
}
},PhoneStateListener.LISTEN_CALL_STATE);

方法三:
incnumber=intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

这三个方法都返回空的 incnumber。

顺便说一句,我正在android pie上运行这个项目,请帮帮我。

最佳答案

试试这个方法...
允许

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

让广播接收器说 ServiceReceiver 在 list 中分配其操作。
<receiver android:name=".ServiceReceiver" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>

服务接收器.Java
public class ServiceReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, Intent intent) {
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
System.out.println("incomingNumber : "+incomingNumber);
}
},PhoneStateListener.LISTEN_CALL_STATE);
}

}

关于android - 在android上以编程方式获取来电号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54938774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com