【问题标题】:unable to make call in KitKat无法在 KitKat 中拨打电话
【发布时间】:2014-11-19 05:01:53
【问题描述】:

我正在开发 csipsimple 1915 版。它适用于 4.4.2 以下的 android 设备。要呼叫本地网络中的某人,我有这个方法

private void broadCastAndroidCallState(String state, String number) {
    //Android normalized event
    Intent intent = new Intent(ACTION_PHONE_STATE_CHANGED);
    intent.putExtra(TelephonyManager.EXTRA_STATE, state);
    if (number != null) {
        intent.putExtra(TelephonyManager.EXTRA_INCOMING_NUMBER, number);
    }
    intent.putExtra(pjService.service.getString(R.string.app_name), true);
    pjService.service.sendBroadcast(intent,android.Manifest.permission.READ_PHONE_STATE);
}

但它不适用于 android 版本 4.4.2。当我想打电话时它崩溃了。我修改了我的代码如下

private void broadCastAndroidCallState(String state, String number) {
        // Android normalized event
        if(!Compatibility.isCompatible(19)) {
            // Not allowed to do that from kitkat
            Intent intent = new Intent(ACTION_PHONE_STATE_CHANGED);
            intent.putExtra(TelephonyManager.EXTRA_STATE, state);
            if (number != null) {
                intent.putExtra(TelephonyManager.EXTRA_INCOMING_NUMBER, number);
            }
            intent.putExtra(pjService.service.getString(R.string.app_name), true);
            pjService.service.sendBroadcast(intent, android.Manifest.permission.READ_PHONE_STATE);
        }
    }

通过修改这个,我的应用程序不会崩溃,但听不到任何声音。请帮我解决这个问题。

【问题讨论】:

    标签: android call android-4.4-kitkat csip-simple


    【解决方案1】:

    有两种方法,一种是在 textview 中设置电话号码,另一种是在 textview 中设置 autoLink。所以,它可以处理所有事情。

    第二件事是,

    Intent callIntent = new Intent(Intent.ACTION_DIAL);          
    callIntent.setData(Uri.parse("tel:"+phonenumber));          
    startActivity(callIntent);
    

    【讨论】:

    • 我的 java 类正在扩展回调,所以我无法开始活动......还有其他方法可以拨打电话吗?或者你可以为我分享整个代码吗?
    • 请分享您的完整代码,以便我纠正错误。
    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    相关资源
    最近更新 更多