我正在构建一个使用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这个错误只出现在棉花糖中,在Kitkat设备中,它工作正常。有人能解释一下这个问题吗?
发布于 2017-06-01 18:20:21
在Android中,我们需要从棉花糖获取权限。
我使用下面的代码来检查并获得用户的权限。
private static final int REQUEST_PERMISSIONS = 100;
private static final String PERMISSIONS_REQUIRED[] = new String[]{
Manifest.permission.READ_CONTACTS,Manifest.permission.RECORD_AUDIO
};
private boolean checkPermission(String permissions[]) {
for (String permission : permissions) {
if (ContextCompat.checkSelfPermission(getApplicationContext(), permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
return true;
}
private void checkPermissions() {
boolean permissionsGranted = checkPermission(PERMISSIONS_REQUIRED);
if (permissionsGranted) {
Toast.makeText(this, "You've granted all required permissions!", Toast.LENGTH_SHORT).show();
} else {
boolean showRationale = true;
for (String permission : PERMISSIONS_REQUIRED) {
showRationale = ActivityCompat.shouldShowRequestPermissionRationale(this, permission);
if (!showRationale) {
break;
}
}
String dialogMsg = showRationale ? "We need some permissions to run this APP!" : "You've declined the required permissions, please grant them from your phone settings";
new AlertDialog.Builder(this)
.setTitle("Permissions Required")
.setMessage(dialogMsg)
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions(mActivity, PERMISSIONS_REQUIRED, REQUEST_PERMISSIONS);
}
}).create().show();
}
}发布于 2017-03-16 17:06:26
可以为构建PJSIP的Android SDK目标进行定义。您应该在Application.mk文件中将APP_ABI指定为:=ALL。在此之前,您还需要检查NDK和armeabi。在构建PJSUA2之前,请仔细阅读here的这些内容。
发布于 2017-02-17 16:52:18
当我把我的targetSdkVersion从25变成19的时候,这个调用在Kitkat和棉花糖中都开始起作用了。我不知道确切的原因。任何知道答案的人,请把答案贴出来。
https://stackoverflow.com/questions/42291432
复制相似问题