我正在Android工作室的Webview
的帮助下开发一个Web应用程序,但有一些问题我需要访问权限才能打开相机我该怎么做才能在 {中获得以下权限{1}}
AndroidManifest.xml
打开相机需要做些什么?
答案 0 :(得分:5)
如果您的应用针对Android 6.0及以上版本而不是添加运行时权限
从Android 6.0(API级别23)开始,用户在应用运行时向应用授予权限,而不是在他们安装应用时授予
使用以下代码添加运行时权限
String permission = Manifest.permission.CAMERA;
int grant = ContextCompat.checkSelfPermission(this, permission);
if (grant != PackageManager.PERMISSION_GRANTED) {
String[] permission_list = new String[1];
permission_list[0] = permission;
ActivityCompat.requestPermissions(this, permission_list, 1);
}
并处理这样的结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(AccountClass.this,"permission granted", Toast.LENGTH_SHORT).show();
// perform your action here
} else {
Toast.makeText(AccountClass.this,"permission not granted", Toast.LENGTH_SHORT).show();
}
}
}
答案 1 :(得分:2)
我认为这里最好的方法是使用WebView API来授予和拒绝权限。
WebChromeClient
; onPermissionRequest()
onPermissionRequestCanceled()
WebView
webView.setWebChromeClient(chromeClient);
答案 2 :(得分:1)
如果您正在使用webView开发Web应用程序,那么您应该了解Android提供的JavascriptInterface
。浏览以下链接
您需要做的就是设置javascript调用back.call来自您网页的方法,处理活动/片段中的javascript回调,然后从那里打开相机。
您还应该检查@Nilesh Rathod的答案,了解运行时权限。
以下是可以帮助您的代码片段
private class WebAppInterface {
public WebAppInterface(Context context) {
}
@JavascriptInterface
public void openCamera(String title) {
//check permissions and open camera intent;
}
}
mWebView.addJavascriptInterface(new WebAppInterface(this), "PLATFORM_ID");