Xamarin android如何覆盖onRequestPermissionsResult

Xamarin android如何覆盖onRequestPermissionsResult,xamarin,xamarin.android,mvvmcross,Xamarin,Xamarin.android,Mvvmcross,我正在用Xamarin和mvvmcross开发一个Android应用程序。对于Android 6.0,我成功地请求了运行时权限,它运行良好,但我无法访问我的MainActivity代码,因此我不知道如何覆盖onRequestPermissionsResult回调,有人知道如何做吗 谢谢您可以使用在运行时请求权限并获得结果 var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Locati

我正在用Xamarin和mvvmcross开发一个Android应用程序。对于Android 6.0,我成功地请求了运行时权限,它运行良好,但我无法访问我的MainActivity代码,因此我不知道如何覆盖onRequestPermissionsResult回调,有人知道如何做吗

谢谢

您可以使用在运行时请求权限并获得结果

var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Location);

if (status == PermissionStatus.Granted)
{
    //Permission was granted.
}

您可以使用
ActivityLifecycleCallbacks

James Montemagno已将API调用打包到他的一个
Xamarin.Plugins

应用程序
子类(Main应用程序)中,进行一些小的设置,然后通过
CrossCurrentActivity.Current
属性访问
活动

public override void OnCreate() { base.OnCreate();
   RegisterActivityLifecycleCallbacks(this); 
}

public override void OnTerminate() { 
  base.OnTerminate(); 
  UnregisterActivityLifecycleCallbacks(this); 
} 

public void OnActivityCreated(Activity activity, Bundle savedInstanceState) { 
   CrossCurrentActivity.Current.Activity = activity; 
} 

public void OnActivityResumed(Activity activity) { 
   CrossCurrentActivity.Current.Activity = activity; 
} 
  • 更多信息,请访问:

  • 可在NuGet上获得:*安装到您的Xamarin.Android客户端项目中

谷歌文档:

根据:

很可能您使用了错误的
权限
类型(在不同的命名空间中有几种名为
权限
的类型)。试试这个:

class Aplication : Android.App.Activity,
    Android.Support.V4.App.ActivityCompat.IOnRequestPermissionsResultCallback {

    public override async void OnRequestPermissionsResult(
        int requestCode,
        string[] permissions,
        Android.Content.PM.Permission[] grantResults
    ) {
    }
}

亚历山大:我也有同样的问题,你们解决了吗?我也想知道你们是否找到了答案。我使用的是
Plugin.Permissions
,但不是Xamarin表单。只是Xamarin中的“本地”Android。您是否找到要用您询问的方法覆盖的活动?