diff --git a/src/main/java/de/j4velin/wifiAutoOff/Log.java b/src/main/java/de/j4velin/wifiAutoOff/Log.java index 6d2cde7..9ffa8b5 100644 --- a/src/main/java/de/j4velin/wifiAutoOff/Log.java +++ b/src/main/java/de/j4velin/wifiAutoOff/Log.java @@ -129,8 +129,11 @@ public static void deleteOldLogs(final Context context, long duration) { if (BuildConfig.DEBUG) Logger.log("deleted " + deleted + " old log entries"); } catch (SQLiteDatabaseLockedException e) { if (BuildConfig.DEBUG) Logger.log("cant delete log: database locked"); + } catch (Throwable t) { + if (BuildConfig.DEBUG) Logger.log("cant delete log: " + t.getMessage()); + } finally { + db.close(); } - db.close(); } /** diff --git a/src/main/java/de/j4velin/wifiAutoOff/StartReceiver.java b/src/main/java/de/j4velin/wifiAutoOff/StartReceiver.java index e524bf5..fd90f8c 100644 --- a/src/main/java/de/j4velin/wifiAutoOff/StartReceiver.java +++ b/src/main/java/de/j4velin/wifiAutoOff/StartReceiver.java @@ -39,14 +39,20 @@ public void onReceive(final Context context, final Intent intent) { } if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { // AC already connected on boot? - Intent batteryIntent = - context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); - int plugged = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); - if (plugged == BatteryManager.BATTERY_PLUGGED_AC || - plugged == BatteryManager.BATTERY_PLUGGED_USB) { - context.sendBroadcast( - // we're not allowed to send Intent.ACTION_POWER_CONNECTED, so use our own action - new Intent(context, Receiver.class).setAction(Receiver.POWER_CONNECTED)); + try { + Intent batteryIntent = context.registerReceiver(null, + new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + int plugged = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); + if (plugged == BatteryManager.BATTERY_PLUGGED_AC || + plugged == BatteryManager.BATTERY_PLUGGED_USB) { + context.sendBroadcast( + // we're not allowed to send Intent.ACTION_POWER_CONNECTED, so use our own action + new Intent(context, Receiver.class) + .setAction(Receiver.POWER_CONNECTED)); + } + } catch (Throwable t) { + // ReceiverCallNotAllowedException might be thrown on Samsung devices... + if (BuildConfig.DEBUG) Logger.log(t); } } Start.start(context);