/// <summary> /// Check if permissions are even possible /// </summary> /// <returns><c>true</c>, if admin was ised, <c>false</c> otherwise.</returns> public bool IsAdmin() { Android.App.Admin.DevicePolicyManager devicePolicyManager = (Android.App.Admin.DevicePolicyManager)Android.App.Application.Context.GetSystemService(Android.Content.Context.DevicePolicyService); Android.Content.ComponentName mDeviceAdminRcvr = new Android.Content.ComponentName(Android.App.Application.Context, Java.Lang.Class.FromType(typeof(FastTalkerSkiaSharp.Droid.Base.DeviceAdminReceiverClass)).Name); return(devicePolicyManager.IsAdminActive(mDeviceAdminRcvr)); }
public override void OnCustomTabsServiceConnected(ComponentName name, CustomTabsClient client) { IServiceConnectionCallback connectionCallback = null; //mConnectionCallback.Get(); mConnectionCallback.TryGetTarget(out connectionCallback); //.Get(); if (connectionCallback != null) { connectionCallback.OnServiceConnected(client); } }
public override void OnServiceDisconnected(ComponentName name) { IServiceConnectionCallback connectionCallback = null; // mConnectionCallback.Get(); mConnectionCallback.TryGetTarget(out connectionCallback); if (connectionCallback != null) { connectionCallback.OnServiceDisconnected(); } }
protected override void OnCreate(Bundle savedInstanceState) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); var altIconApp = new AlternateIcon.App(); altIconApp.AppIconChanged += (sender, icon) => { var chickenActivityAlias = new Android.Content.ComponentName(this, "com.dgatto.alternateicon.SplashActivity.Chicken"); var cactusActivityAlias = new Android.Content.ComponentName(this, "com.dgatto.alternateicon.SplashActivity.Cactus"); // ComponentEnableOption.DontKillApp (i.e. kill app in five seconds) switch (icon) { case AppIcon.Chicken: // Disable the launcher activity and enable it's alias PackageManager.SetComponentEnabledSetting( chickenActivityAlias, ComponentEnabledState.Enabled, ComponentEnableOption.DontKillApp); PackageManager.SetComponentEnabledSetting( cactusActivityAlias, ComponentEnabledState.Disabled, ComponentEnableOption.DontKillApp); break; case AppIcon.Cactus: PackageManager.SetComponentEnabledSetting( cactusActivityAlias, ComponentEnabledState.Enabled, ComponentEnableOption.DontKillApp); PackageManager.SetComponentEnabledSetting( chickenActivityAlias, ComponentEnabledState.Disabled, ComponentEnableOption.DontKillApp); break; default: break; } }; LoadApplication(altIconApp); }
/// <summary> /// Set screen pinning, with user-level privileges used as a backup if necessary /// </summary> /// <param name="status">If set to <c>true</c> status.</param> public void RequestAdmin(bool status) { Android.App.Admin.DevicePolicyManager devicePolicyManager = (Android.App.Admin.DevicePolicyManager)Android.App.Application.Context.GetSystemService(Android.Content.Context.DevicePolicyService); Android.Content.ComponentName mDeviceAdminRcvr = new Android.Content.ComponentName(Android.App.Application.Context, Java.Lang.Class.FromType(typeof(FastTalkerSkiaSharp.Droid.Base.DeviceAdminReceiverClass)).Name); // This is the preferred, hard lock method with device as administrator try { if (devicePolicyManager.IsAdminActive(mDeviceAdminRcvr)) { devicePolicyManager.SetLockTaskPackages(mDeviceAdminRcvr, new System.String[] { Android.App.Application.Context.PackageName }); if (devicePolicyManager.IsLockTaskPermitted(Android.App.Application.Context.PackageName)) { if (status) { Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity.StartLockTask(); return; } else { Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity.StopLockTask(); return; } } } } catch { } // This is the fallback, pinning the device and overriding other keys try { Android.App.ActivityManager activityManager = (Android.App.ActivityManager)Android.App.Application.Context.GetSystemService(Android.Content.Context.ActivityService); if (status) { Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity.StartLockTask(); } else { Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity.StopLockTask(); } } catch { } }
protected void custom_tabs_activit_manager_CustomTabsServiceConnected ( Android.Content.ComponentName name, CustomTabsClient client ) { custom_tabs_intent_builder = new CustomTabsIntent.Builder(custom_tabs_activity_manager.Session); custom_tabs_intent_builder.EnableUrlBarHiding(); if (CustomTabsConfiguration.IsWarmUpUsed) { System.Diagnostics.Debug.WriteLine("CustomTabsActivityManager.WarmUp()"); client.Warmup(0); //custom_tabs_activity_manager.Warmup(); } if (CustomTabsConfiguration.IsPrefetchUsed) { System.Diagnostics.Debug.WriteLine("CustomTabsActivityManager PREFETCH"); custom_tabs_activity_manager.MayLaunchUrl(uri.ToString(), null, null); } if (CustomTabsConfiguration.AreAnimationsUsed) { custom_tabs_intent_builder.SetStartAnimations ( activity, Xamarin.Auth.Resource.Animation.slide_in_right, Xamarin.Auth.Resource.Animation.slide_out_left ); custom_tabs_intent_builder.SetExitAnimations ( activity, global::Android.Resource.Animation.SlideInLeft, global::Android.Resource.Animation.SlideOutRight ); } custom_tabs_activity_manager.LaunchUrl(uri.ToString(), custom_tabs_intent_builder.Build()); return; }