Android 从视图中请求摄影机权限

Android 从视图中请求摄影机权限,android,android-permissions,Android,Android Permissions,我有一个定制的Android SurfaceView,用来显示摄像头的视频流。为了访问相机,我需要从用户那里获得相应的权限 Android解释了如何使用checkSelfPermission、shouldshowrequestpermissionrational和 请求权限 现在,我想做的是直接从自定义视图中请求权限。请不要试图告诉我这是一种不好的做法,等等 我未能做到这一点的原因是,似乎没有办法告诉Android在哪里可以找到ActivityCompat.OnRequestPermission

我有一个定制的Android SurfaceView,用来显示摄像头的视频流。为了访问相机,我需要从用户那里获得相应的权限

Android解释了如何使用checkSelfPermission、shouldshowrequestpermissionrational和 请求权限

现在,我想做的是直接从自定义视图中请求权限。请不要试图告诉我这是一种不好的做法,等等

我未能做到这一点的原因是,似乎没有办法告诉Android在哪里可以找到ActivityCompat.OnRequestPermissionsResultCallbackcallback。Android似乎自动地希望它成为托管我的修改视图的活动或片段的一部分

我错过了.setcallback调用。在视图上直接实现ActivityCompat.OnRequestPermissionsResultCallback后,我可以将此调用添加到自定义视图代码中

在Android视图中真的没有非黑客式的权限请求方式吗

Android似乎自动地希望它成为承载我修改视图的活动或片段的一部分

在Android视图中真的没有非黑客式的权限请求方式吗

Android似乎自动地希望它成为承载我修改视图的活动或片段的一部分

在Android视图中真的没有非黑客式的权限请求方式吗


正确。

将onPermissionResult方法放在调用它的活动/片段中,并在视图“proceedAfterPermission”中创建一个公共方法,然后从父活动/片段调用它


对于从视图请求权限,您可以将上下文从活动/片段传递到视图,只需将上下文变量设置为公共。

将onPermissionResult方法放在调用它的活动/片段中,并在视图“proceedAfterPermission”中创建一个公共方法,然后从父活动/片段调用它


对于从视图请求权限,您可以将上下文从活动/片段传递到视图,只需将上下文变量公开即可。

这很不幸。我依靠SurfaceView的surfaceCreated和surfaceDestroyed方法来启动和停止摄像头视频流。从视图外部看,我不知道这些方法何时运行,这意味着我需要在创建视图之前请求权限。这很不幸。我依靠SurfaceView的surfaceCreated和surfaceDestroyed方法来启动和停止摄像头视频流。从视图外部看,我不知道这些方法何时运行,这意味着我需要在创建视图之前请求权限。即使调用ActivityCompat.requestPermissionsActivitygetContext,我仍然必须在活动/片段上实现ActivityCompat.OnRequestPermissionsResultCallback。。。从SurfaceView中提取,因此无法正确地提取SurfaceView中的所有内容。是的,您必须在活动/片段中实现onRequestPermission结果,但在收到回调后,只需调用任何公共方法来通知视图回调。没有别的办法,兄弟,对不起:是的,只是另一个安卓缺陷,无意冒犯。无论如何,感谢您的回答,欢迎使用StackOverflow。即使我调用ActivityCompat.requestPermissionsActivitygetContext,我仍然必须在活动/片段上实现ActivityCompat.OnRequestPermissionsResultCallback。。。从SurfaceView中提取,因此无法正确地提取SurfaceView中的所有内容。是的,您必须在活动/片段中实现onRequestPermission结果,但在收到回调后,只需调用任何公共方法来通知视图回调。没有别的办法,兄弟,对不起:是的,只是另一个安卓缺陷,无意冒犯。谢谢你的回答,欢迎收看StackOverflow。