private void RemoveExternalStoragePolicyChangedCallback() { int ret = Interop.DevicePolicyManager.RemovePolicyChangedCallback(_dpm.GetHandle(), _externalStorageCallbackId); if (ret != (int)Interop.DevicePolicyManager.ErrorCode.None) { Log.Error(Globals.LogTag, "Failed to remove policy changed callback, name " + _externalStoragePolicyName + ", ret : " + ret); throw DevicePolicyManagerErrorFactory.CreateException(ret); } _externalStoragePolicyChangedCallback = null; _externalStorageCallbackId = 0; }
private void AddExternalStoragePolicyChangedCallback() { if (_externalStoragePolicyChangedCallback == null) { _externalStoragePolicyChangedCallback = (string name, string state, IntPtr userData) => { _externalStoragePolicyChanged?.Invoke(this, new PolicyChangedEventArgs(ExternalStoragePolicyName, state)); }; } int ret = Interop.DevicePolicyManager.AddPolicyChangedCallback(_dpm.GetHandle(), _externalStoragePolicyName, _externalStoragePolicyChangedCallback, IntPtr.Zero, out _externalStorageCallbackId); if (ret != (int)Interop.DevicePolicyManager.ErrorCode.None) { Log.Error(Globals.LogTag, "Failed to add policy changed callback, name " + _externalStoragePolicyName + ", ret : " + ret); throw DevicePolicyManagerErrorFactory.CreateException(ret); } }