【问题标题】:How to get the incoming number of caller?如何获取来电者的来电号码?
【发布时间】:2020-02-24 14:21:50
【问题描述】:

我需要在 cordova 中接收来电者的电话号码,它可以只在 android 中。我找到了这个插件: https://github.com/renanoliveira/cordova-phone-call-trap

这个插件工作,但不发出电话号码 - 只有拨号的状态。 我已经挖掘了插件的 src 我已经看到了这个:

public void onCallStateChanged(int state, String incomingNumber) {
    super.onCallStateChanged(state, incomingNumber);

    ... code 
}

正如您在 **incomingNumber** 看到的那样,但它是 null(在真实设备上测试,并接听了电话)。

我已经尝试在清单中添加这个:

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

如何使它工作?

【问题讨论】:

    标签: android cordova


    【解决方案1】:

    添加权限:

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

    创建一个名为 PhoneStateReceiver 的 Java 类,它应该扩展 BroadcastReceiver 类。

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

    PhoneStateReceiver 类:

    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,"Ringing State Number is - " + incomingNumber, Toast.LENGTH_SHORT).show();
                }
            }
            catch (Exception e){
                e.printStackTrace();
            }
        }
    

    【讨论】:

    • 你能提供进口和科尔多瓦零件的链接吗?例如 Toast 是什么? BroadcasterReceiver 也不应该被导入?
    • 广播接收器是android的组件之一。您只需创建一个类并粘贴此代码。如果您使用的是 android studio,它会起作用,并要求自己导入。
    • 没关系,我只需要java的代码而不是cordova的完整实现,我不想浪费你的时间我会自己尝试做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多