为了在运行时请求权限,我使用了RequestPermissions
函数。
我两次使用RequestPermissions
函数。一次进入一个片段(void Android.Support.V4.App.Fragment.RequestPermissions
),一次进入主要活动(void Activity.RequestPermissions
)。
为此,我两次覆盖了OnRequestPermissionsResult
函数-似乎void Android.Support.V4.App.Fragment.RequestPermissions
实际上在结束时变成了void MainActivity.OnRequestPermissionsResult
。我该如何使用其他OnRequestPermissionsResult
?
最主要的是,两次重写同一函数会发生什么?哪个版本适用? OnRequestPermissionsResult
是我的问题,这里以示例为例,但我想它属于更大的事情。
另一种询问方式是如何确定完成后将调用哪个函数RequestPermissions
?
答案 0 :(得分:1)
在父级活动中,我有一个OnRequestPermissionsResult
方法,
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
Toast.MakeText(this, "Activity", ToastLength.Short).Show();
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
然后分段,我使用按钮单击并调用以请求权限:
button.Click += delegate
{
RequestPermissions(new string[] { Manifest.Permission.Camera }, 0);
};
,并且在片段中还有一个OnRequestPermissionsResult
方法:
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
Toast.MakeText(Activity, "Fragment", ToastLength.Short).Show();
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
最后,回调将输入活动的OnRequestPermissionsResult
,然后输入片段的OnRequestPermissionsResult
,因此您可以自定义requestCode
来区分请求的哪一边。