【问题标题】:Video access with android AdvancedWebView使用 android AdvancedWebView 访问视频
【发布时间】:2015-05-26 21:35:50
【问题描述】:

有没有办法通过AdvancedWebView 授予我的安卓应用相机访问权限?

本机webview可以,但是本机不允许通过上传文件,所以现在我可以上传文件了,但是没有摄像头。

主要代码:

public class MainActivity extends ActionBarActivity implements AdvancedWebView.Listener {

private AdvancedWebView mWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mWebView = (AdvancedWebView) findViewById(R.id.webview);
        mWebView.setListener(this, this);
        mWebView.setGeolocationEnabled(true);
        mWebView.loadUrl(url);
    }
}

 mWebView.setGeolocationEnabled(true); 

line 给出了位置权限就好了,视频有类似的东西吗?

【问题讨论】:

    标签: android webview android-webview


    【解决方案1】:

    设法让它工作! 一旦您的相机捕捉在网络浏览器中工作,授予相机权限:

    public void iniciaWebView(){
    
    mWebView = (AdvancedWebView) findViewById(R.id.webview);
    mWebView.setListener(this, this);
    mWebView.setGeolocationEnabled(true);
    mWebView.addHttpHeader("X-Requested-With", appNomeLogs);
    
    mWebView.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onPermissionRequest(final PermissionRequest request) {
            Log.i(appNomeLogs, "|> onPermissionRequest");
    
            MainActivity.this.runOnUiThread(new Runnable(){
                @TargetApi(Build.VERSION_CODES.LOLLIPOP)
                @Override
                public void run() {
                    Log.i(appNomeLogs, "|> onPermissionRequest run");
                    request.grant(request.getResources());
                }// run
            });// MainActivity
    
        }// onPermissionRequest
    });// setWebChromeClient
    
    mWebView.loadUrl(url);
    
    }// iniciaWebView
    

    清单:

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT" />
    

    目前仅在 android 5 中测试过。

    【讨论】:

    • 我缺少权限,添加它们后它正在工作:)
    • 'grant' 需要 Api21 等。有什么方法可以在 API15 中使用?
    • @Moises 此权限仅授予系统应用
    • 这是一个很好的答案,但 Android 不同意。请参阅文档:developer.android.com/reference/android/webkit/… 您需要根据应用程序的权限为请求的每个权限授予访问权限。如果服务器的某个WEB页面通过HTML代码请求访问Manifest文件中没有设置的资源,就会出现ANR。您还知道,您的 Manifesto 文件中的权限必须事先获得批准。
    • 请记住,这是一个 6 岁的答案
    猜你喜欢
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 2020-02-23
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多