嗨,我的应用程序流程是应用程序应询问相机和存储权限,并立即打开QrScan相机。当我调试一切正常时,但是当我运行该应用程序时,在征得许可后会打开一个空白页面,为什么那一个请解释一下。
我正在使用ZXing扫描仪视图。
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
这是权限代码。以下是扫描代码
async function getGithubPicture(username, callback) {
let data = await fetch('https://api.github.com/users/' + username);
let main = await data.json();
return main.avatar_url.toString();
}
document.getElementById('pfp').src = await getGithubPicture('harryuk');
// or
getGithubPicture('harryuk').then(url=> document.getElementById('pfp').src =
url)
清单文件
public static boolean checkAndRequestPermissions(final Activity context) {
int ExtstorePermission = ContextCompat.checkSelfPermission( context,
Manifest.permission.READ_EXTERNAL_STORAGE );
int cameraPermission = ContextCompat.checkSelfPermission( context,
Manifest.permission.CAMERA );
List <String> listPermissionsNeeded = new ArrayList <>();
if (cameraPermission != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add( Manifest.permission.CAMERA );
}
if (ExtstorePermission != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded
.add( Manifest.permission.WRITE_EXTERNAL_STORAGE );
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions( context, listPermissionsNeeded
.toArray( new String[listPermissionsNeeded.size()] ),
REQUEST_ID_MULTIPLE_PERMISSIONS );
return false;
}
return true;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQUEST_ID_MULTIPLE_PERMISSIONS:
if (ContextCompat.checkSelfPermission( MainActivity.this, Manifest.permission.CAMERA ) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText( getApplicationContext(), "Requires acces to Camera", Toast.LENGTH_SHORT ).show();
// initAds();
finish();
} else if (ContextCompat.checkSelfPermission( MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE ) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText( getApplicationContext(), "Requires Storage Permissions.", Toast.LENGTH_SHORT ).show();
finish();
} else {
}
break;
}
}
在我运行应用程序时,询问权限而不是扫描摄像头后打开空白页,如果我将手机的模式从potraite更改为横向模式,则扫描摄像头正在打开。。但是当我调试一切正常时,无需转动电话。