public static void Initialize(Context ctx) { P2PManager.ctx = ctx; if (intentFilter == null) { intentFilter = new IntentFilter(); intentFilter.AddAction(WifiP2pManager.WifiP2pStateChangedAction); intentFilter.AddAction(WifiP2pManager.WifiP2pPeersChangedAction); intentFilter.AddAction(WifiP2pManager.WifiP2pConnectionChangedAction); intentFilter.AddAction(WifiP2pManager.WifiP2pThisDeviceChangedAction); } if (manager == null) { manager = (WifiP2pManager)ctx.GetSystemService(Context.WifiP2pService); channel = manager.Initialize(ctx, ctx.MainLooper, null); } if (receiver == null) { receiver = new WiFiDirectBroadcastReceiver(manager, channel); } ctx.RegisterReceiver(receiver, intentFilter); }
/// <summary> /// Requests temporary permission for the given package to access the accessory. /// This may result in a system dialog being displayed to the user if permission had not already been granted. /// </summary> /// <returns>The observable sequence of permission values.</returns> /// <param name="manager">The UsbManager system service.</param> /// <param name="context">The Context to request the permission from.</param> /// <param name="accessory">The UsbAccessory to request permission for.</param> public static IObservable<bool> PermissionRequested(this UsbManager manager, Context context, UsbAccessory accessory) { return Observable.Create<bool> (observer => { var usbPermissionReceiver = new UsbAccessoryPermissionReceiver (observer, accessory); context.RegisterReceiver (usbPermissionReceiver, new IntentFilter (ACTION_USB_PERMISSION)); var intent = PendingIntent.GetBroadcast (context, 0, new Intent (ACTION_USB_PERMISSION), 0); manager.RequestPermission (accessory, intent); return Disposable.Create (() => context.UnregisterReceiver (usbPermissionReceiver)); }); }
public static float GetBatteryLevel (Context ctx) { try { var filter = new IntentFilter (Intent.ActionBatteryChanged); var intent = ctx.RegisterReceiver (null, filter); int level = intent.GetIntExtra ("level", -1); int scale = intent.GetIntExtra ("scale", -1); return level / (float)scale; } catch (Java.Lang.Throwable ex) { Log.Warn (Tag, ex, "Failed to determine battery level."); return 0; } }
public static bool CheckBatteryCharging (Context ctx) { try { var filter = new IntentFilter (Intent.ActionBatteryChanged); var intent = ctx.RegisterReceiver (null, filter); var status = (Android.OS.BatteryStatus)intent.GetIntExtra ("status", -1); return status == Android.OS.BatteryStatus.Charging || status == Android.OS.BatteryStatus.Full; } catch (Java.Lang.Throwable ex) { Log.Warn (Tag, ex, "Failed to determine if the battery is charging."); return false; } }
static void SetRetryBroadcastReceiver(Context context) { if (sRetryReceiver == null) { sRetryReceiver = new GCMBroadcastReceiver(); var category = context.PackageName; var filter = new IntentFilter(GCMConstants.INTENT_FROM_GCM_LIBRARY_RETRY); filter.AddCategory(category); var permission = category + ".permission.C2D_MESSAGE"; Log.Verbose(TAG, "Registering receiver"); context.RegisterReceiver(sRetryReceiver, filter, permission, null); } }