vuforia sdk+android无法初始化vuforia,权限异常



运行带有的程序后应用程序崩溃,无法初始化权限异常的Vuforia

Android版本为<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />

仅在带有前置摄像头的设备4.1.1(api级别16(上进行测试。

清单文件中包含的权限:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-feature android:glEsVersion="0x00020000" />

SampleApplicationSessionInitVuforiaTask任务出现异常,返回的Vuforia.init()值为-1。

不确定我错过了什么。

包含的库包括armaebi-v7a/libVuforia.so、android-support-v4、jpct_ae、Vuforia

我也遇到过同样的问题。如果您看到这个示例附带了compiledSdKversion 22,因为在较新的版本中,用户必须明确地授予Camera权限。我的项目是通过添加一些代码到我的android应用程序与API 25合作。在我的案例中,当用户点击FloatingActionButton时,我在打开vuforia活动之前请求了相机权限:

FloatingActionButton flb=(FloatingActionButton)findViewById(R.id.floatingActionButton2);
    flb.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(MainActivity.this, new String[] { Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE }, 0);
            }
            else
            {
                Intent myIntent = new Intent(MainActivity.this, VideoPlayback.class);
                startActivity(myIntent);
            }
        }
    });

VideoPlayback是使用vuforia中包含的AR的活动。在这种情况下,您必须侦听onRequestPermissionsResult,因为我们必须检查用户的答案。

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    // Begin monitoring for Aruba Beacon-based Campaign events
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == 0) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED
                && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
            Intent myIntent = new Intent(MainActivity.this, VideoPlayback.class);
            startActivity(myIntent);
        }
    }

}

在onRequestPermissionsResult中,我们检查答案是否为正,如果是,则打开活动。

我希望它也适用于你。

最新更新