Пример #1
0
        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());
            });
        }
Пример #2
0
        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);
                }
            }
        }