#c# #xamarin #xamarin.android
#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, я не получу никакого сообщения. Оставляя его, я получаю ошибку компиляции «не найдено подходящего метода для переопределения».
Ответ №1:
Это реализация интерфейса, а не наследование, поэтому просто реализуйте его, не используйте «переопределение». Также взгляните https://github.com/jamesmontemagno/PermissionsPlugin
Ответ №2:
Вы захотите реализовать ActivityCompat.IOnRequestPermissionsResultCallback
интерфейс в Activity
. В противном случае вам нужно будет предоставить application Context
/ Activity
для ActivityCompat.RequestPermissions()
метода.
Вы можете прочитать гораздо больше здесь:
Если ваше приложение не имеет запрошенных разрешений, пользователю будет представлен пользовательский интерфейс для их принятия. После того, как пользователь принял или отклонил запрошенные разрешения, вы получите сообщение об обратном вызове, сообщающее, были ли предоставлены разрешения или нет. Ваша активность должна реализовывать ActivityCompat .Обратный вызов onRequestPermissionsResult и результаты запросов разрешений будут доставлены в его метод onRequestPermissionsResult(int, String[], int[]) .
Комментарии:
1. Он передает контекст в
ActivityCompat.RequestPermissions()
. Здесь та же проблема