OnRequestPermissionsResult():找不到合适的方法来覆盖

时间:2016-10-15 00:50:15

标签: c# xamarin xamarin.android

我目前在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,我没有得到任何消息。留下它,我得到编译错误"找不到合适的方法来覆盖"。

2 个答案:

答案 0 :(得分:5)

这是接口实现而不是继承,所以只需实现它,不要使用“覆盖”。 另外看看 https://github.com/jamesmontemagno/PermissionsPlugin

答案 1 :(得分:2)

您需要在ActivityCompat.IOnRequestPermissionsResultCallback中实施Activity界面。否则,您需要向Context方法提供应用Activity / ActivityCompat.RequestPermissions()

你可以在这里阅读更多内容:

https://developer.android.com/reference/android/support/v4/app/ActivityCompat.html#requestPermissions(android.app.Activity, java.lang.String[], int)

  

如果您的应用没有所请求的权限,系统会向用户显示接受这些权限的用户界面。用户接受或拒绝所请求的权限后,您将收到一个回调,报告是否授予了权限。您的活动必须实施ActivityCompat.OnRequestPermissionsResultCallback,并且权限请求的结果将传递到其onRequestPermissionsResult(int, String[], int[])方法。