PJSUA2无法从Android 6.0.1拨打电话

时间:2017-02-17 07:02:08

标签: android android-6.0-marshmallow android-4.4-kitkat pjsip pjsua2

我正在使用pjsua2库构建应用程序。随库提供的示例应用程序运行正常。但在我的应用中,当我尝试使用以下代码拨打电话时,

    if (currentCall != null) {return;}
    String buddy_uri = "sip:" + number + "@" + domain;
    MyCall call = new MyCall(account, -1);
    CallOpParam prm = new CallOpParam(true);
    try {
        call.makeCall(buddy_uri, prm);
    } catch (Exception e) {
        call.delete();
        return;
    }
    currentCall = call;

我在下面得到了例外,

java.lang.Exception: Title:       pjsua_call_make_call(acc.getId(),
&pj_dst_uri, param.p_opt, this, param.p_msg_data, &id)
Code:        420003
Description: Audio subsystem not initialized (PJMEDIA_EAUD_INIT)
Location:    ../src/pjsua2/call.cpp:490

这个错误只出现在Marshmallow,在Kitkat设备中,它的工作正常。有人可以对这个问题有所了解吗?

5 个答案:

答案 0 :(得分:4)

在Marshmallow的Android中,我们需要获得权限。

我使用以下代码检查并获取用户的权限。

Input to 1D convolution
1D Convolution to 2D Convolution Transpose
1D Convolution to Dense

答案 1 :(得分:2)

可以定义您构建PJSIP的Android SDK目标。您应在APP_ABI文件中将:=ALL指定为Application.mk。您之前要检查的其他内容包括NDKarmeabi。在构建PJSUA2之前仔细阅读这些内容here

答案 2 :(得分:0)

当我从25岁开始将targetSdkVersion变为19时,呼叫开始在Kitkat和Marshmallow工作。我不知道具体原因。任何知道的人,请发表答案。

答案 3 :(得分:0)

我遇到了同样的问题,因为我没有在运行时请求 SharedPreferences prefs = this.getSharedPreferences("Date_PREF", Context.MODE_PRIVATE); SharedPreferences sharedPreferences = getPreferences(MODE_APPEND); SharedPreferences.Editor editor = sharedPreferences.edit(); 权限。

检查有关权限的documentation

答案 4 :(得分:0)

在Android Manifest文件中声明音频权限,然后要求用户记录音频权限。