我目前在Xamarin.Forms项目中有以下内容。
public class CameraPageRenderer : PageRenderer, ActivityCompat.IOnRequestPermissionsResultCallback {
...
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults) {
Console.WriteLine("testing callback");
}
...
}
另外,我有以下要求相机许可。
var perms = new string[] {Manifest.Permission.Camera};
ActivityCompat.RequestPermissions((Context as Activity), perms, 0);
如果我删除"覆盖"从OnRequestPermissionsResult,我没有得到任何消息。留下它,我得到编译错误"找不到合适的方法来覆盖"。
答案 0 :(得分:5)
这是接口实现而不是继承,所以只需实现它,不要使用“覆盖”。 另外看看 https://github.com/jamesmontemagno/PermissionsPlugin
答案 1 :(得分:2)
您需要在ActivityCompat.IOnRequestPermissionsResultCallback
中实施Activity
界面。否则,您需要向Context
方法提供应用Activity
/ ActivityCompat.RequestPermissions()
。
你可以在这里阅读更多内容:
如果您的应用没有所请求的权限,系统会向用户显示接受这些权限的用户界面。用户接受或拒绝所请求的权限后,您将收到一个回调,报告是否授予了权限。您的活动必须实施ActivityCompat.OnRequestPermissionsResultCallback,并且权限请求的结果将传递到其onRequestPermissionsResult(int, String[], int[])方法。