protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById <Button>(Resource.Id.myButton); _permissionsProxy = new CMPPermissionsProxy(this); _permissionsProxy.AddPermissionToWishList(Manifest.Permission.ReadContacts, "RCN"); _permissionsProxy.AddPermissionToWishList(Manifest.Permission.ReadCalendar, "RCL"); var lst = new List <string>(); lst.Add("RCN"); lst.Add("RCL"); _permissionsProxy.CheckForListOfPermissions(lst, 0, (permissionInfoList, responseCallback) => { var permissionsArray = CMPPermissionsProxy.ExtractPermissions(permissionInfoList); // Can show reasons here, if needed, before calling callback responseCallback.Invoke(permissionsArray?.ToList()); }); }
private void ShowPermissions(List <CMPPermissionInfo> permissionInfoList, bool shouldShowReason, int accessCode, ShowReasonCallback showReasonCallback) { if (shouldShowReason == true) { showReasonCallback.Invoke(permissionInfoList, (List <string> permissionsList) => { String[] permissionsArray = null; if (permissionsList == null) { permissionsArray = CMPPermissionsProxy.ExtractPermissions(permissionInfoList); } else { permissionsArray = permissionsList.ToArray(); } if ((permissionsArray != null) && (permissionsArray.Length > 0)) { _hostActivity.RequestPermissions(permissionsArray, accessCode); } }); } else { String[] permissionsArray = CMPPermissionsProxy.ExtractPermissions(permissionInfoList); if ((permissionsArray != null) && (permissionsArray.Length > 0)) { _hostActivity.RequestPermissions(permissionsArray, accessCode); } } }