无法在KitKat中拨打电话

时间:2014-11-19 05:01:54

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

我正在使用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);
        }
    }

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

1 个答案:

答案 0 :(得分:0)

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

第二件事是,

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