0

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

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

4

1 回答 1

0

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

第二件事是,

Intent callIntent = new Intent(Intent.ACTION_DIAL);          
callIntent.setData(Uri.parse("tel:"+phonenumber));          
startActivity(callIntent);
于 2014-11-19T05:13:11.827 回答