@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == MY_PERMISSION_REQUEST_CAMERA || requestCode == MY_PERMISSIONS_REQUEST_RECORD_AUDIO) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(MainActivity.this, "permission granted", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "permission not granted", Toast.LENGTH_SHORT).show();
}
}
}
@SuppressLint({"SetJavaScriptEnabled", "ClickableViewAccessibility"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this.getApplicationContext();
if (!isTaskRoot()) {
finish();
return;
}
myWebView = findViewById(R.id.myWebView);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.setWebViewClient(new WebViewClient());
myWebView.setWebViewClient(new MyCustomWebViewClient());
myWebView.setWebChromeClient(new WebChromeClient());
myWebView.setWebChromeClient(new MyCustomWebChromeClient());
myWebView.getSettings().setDomStorageEnabled(true);
myWebView.loadUrl("https://www.skaplink.com");
myWebView.getSettings().setUserAgentString(userAgent);
/*String permission1 = Manifest.permission.CAMERA;
String permission2 = Manifest.permission.RECORD_AUDIO;
String permission3 = Manifest.permission.MODIFY_AUDIO_SETTINGS;
int grant1 = ContextCompat.checkSelfPermission(this, permission1);
int grant2 = ContextCompat.checkSelfPermission(this, permission2);
ContextCompat.checkSelfPermission(this, permission3);
if (grant1 != PackageManager.PERMISSION_GRANTED && grant2 != PackageManager.PERMISSION_GRANTED) {
String[] permission_list = new String[2];
permission_list[0] = permission1;
permission_list[1] = permission2;
ActivityCompat.requestPermissions(this, permission_list, 1);
ActivityCompat.requestPermissions(this, permission_list, 2);
Log.d("Granting Process", "Done");
}*/
permission();
}
void permission() {
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(MainActivity.this, "You already granted the permission", Toast.LENGTH_SHORT).show();
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, MY_PERMISSION_REQUEST_CAMERA);
}
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(MainActivity.this, "You already granted the permission", Toast.LENGTH_SHORT).show();
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, MY_PERMISSIONS_REQUEST_RECORD_AUDIO);
}
}
这些显示在我的logcat里
无法通知WebView/VideoCapabilities:无法识别的配置文件2130706434用于视频/AVC W/VideoCapabilities:不支持的mime视频/Divx W/VideoCapilities:不支持的mime视频/Divx4 W/VideoCapilities:不支持的mime视频/MP4V-ESDP W/VideoCapilities:不支持的配置文件4用于视频/MP4V-ES I/CameramanagerGlobal:连接到摄像机服务W/CR_Media:需要MODIFY_AUDIO_SETTINGS和record_audio。没有音频设备可用于使用/cr_media录制:需要MODIFY_AUDIO_SETTINGS和record_audio。没有音频设备可用于录制
您不能在webView中直接使用麦克风和摄像机,因为您需要添加额外的权限MODIFY_AUDIO_SETTINGS和RECORD_AUDIO,然后只有您才能访问这些功能。
在清单文件中添加这些权限,使用
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
然后使用webView客户端类中的OnPermissionRequest
方法请求权限(在您的示例中为MyCustomWebChromeclient
问题内容: 我有一个针对移动设备进行了优化的Web应用程序,可用于访问网络摄像头和麦克风资源。 我要将这个应用包装为A,因为我想提供本机应用体验。我知道,iOS不允许通过浏览器访问摄像机- 但有什么办法来获得权限的网络摄像头/麦克风与本机代码(沿着封装)和饲料这对Web应用程序-也许在某种程度上指向一个本地流源? 问题答案: 是的,看看cordova-plugin-iosrtc和cordova-p
我已经创建了一个webview应用程序,在那里我扫描二维码。在移动和桌面浏览器上一切正常,但在应用程序中,我得到。 我在下面分享一些代码: 我也尝试了这里和这里建议的解决方案,但它对我不起作用。
因此,如果我以角色的身份登录,我就可以很好地访问这个视图。 但是,让我们做一个小的改变,重写一个方法... 这会给我一个...我不明白为什么。 为什么?!! 希望能得到一些帮助来解决这个问题。
我在*上运行命令< code >授予所有权限。*到由“root”标识的“root”@“%”; 并且它不断显示以下错误 11: 43:51向“root”标识的“root“@”%“授予所有权限。错误代码:1045。拒绝用户“root‘@”%的访问(使用密码:YES)0.00045秒 我还检查了Mysql上的User表,如下所示。 我不知道这是怎么回事?: 不重新安装MySQL怎么解决这个问题?(因为,
我已经创建了自己的android。这样我就可以使用隐藏的API调用“DisplayManager.connectWifiDisplay()”。 当我运行应用程序并调用该方法时,在通过Wifi Direct连接到显示器后, 我得到以下例外: java.lang.SecurityException:连接到wifi显示器所需的权限:用户10105和当前进程都没有android.Permission.CO
播放音符 播放声音 录制 文字转语音