diff --git a/app/src/main/java/com/jens/automation2/Actions.java b/app/src/main/java/com/jens/automation2/Actions.java index 96e053f..d80566e 100644 --- a/app/src/main/java/com/jens/automation2/Actions.java +++ b/app/src/main/java/com/jens/automation2/Actions.java @@ -260,17 +260,58 @@ public class Actions ContentResolver cr = instance.getContentResolver(); - //"String", "Long", "Int", "Float" }; - String[] parts = parameter2.split(Action.actionParameter2Split); + // "String", "Long", "Int", "Float" + String[] parts = parameter2.split(Action.actionParameter2Split, -1); - if (parts[0].equalsIgnoreCase("String")) - result = android.provider.Settings.Global.putString(cr, parts[1], parts[2]); - else if (parts[0].equalsIgnoreCase("Long")) - result = android.provider.Settings.Global.putLong(cr, parts[1], Long.parseLong(parts[2])); - else if (parts[0].equalsIgnoreCase("Int")) - result = android.provider.Settings.Global.putInt(cr, parts[1], Integer.parseInt(parts[2])); - else if (parts[0].equalsIgnoreCase("Float")) - result = android.provider.Settings.Global.putFloat(cr, parts[1], Float.parseFloat(parts[2])); + if(parts.length == 3) + { + if (parts[0].equalsIgnoreCase("String")) + result = android.provider.Settings.Global.putString(cr, parts[1], parts[2]); + else if (parts[0].equalsIgnoreCase("Long")) + result = android.provider.Settings.Global.putLong(cr, parts[1], Long.parseLong(parts[2])); + else if (parts[0].equalsIgnoreCase("Int")) + result = android.provider.Settings.Global.putInt(cr, parts[1], Integer.parseInt(parts[2])); + else if (parts[0].equalsIgnoreCase("Float")) + result = android.provider.Settings.Global.putFloat(cr, parts[1], Float.parseFloat(parts[2])); + } + else + { + if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[0])) + { + if (parts[1].equalsIgnoreCase("String")) + result = android.provider.Settings.Global.putString(cr, parts[2], parts[3]); + else if (parts[1].equalsIgnoreCase("Long")) + result = android.provider.Settings.Global.putLong(cr, parts[2], Long.parseLong(parts[3])); + else if (parts[1].equalsIgnoreCase("Int")) + result = android.provider.Settings.Global.putInt(cr, parts[2], Integer.parseInt(parts[3])); + else if (parts[1].equalsIgnoreCase("Float")) + result = android.provider.Settings.Global.putFloat(cr, parts[2], Float.parseFloat(parts[3])); + } + else if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[1])) + { + if (parts[1].equalsIgnoreCase("String")) + result = android.provider.Settings.System.putString(cr, parts[2], parts[3]); + else if (parts[1].equalsIgnoreCase("Long")) + result = android.provider.Settings.System.putLong(cr, parts[2], Long.parseLong(parts[3])); + else if (parts[1].equalsIgnoreCase("Int")) + result = android.provider.Settings.System.putInt(cr, parts[2], Integer.parseInt(parts[3])); + else if (parts[1].equalsIgnoreCase("Float")) + result = android.provider.Settings.System.putFloat(cr, parts[2], Float.parseFloat(parts[3])); + } + else if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[2])) + { + if (parts[1].equalsIgnoreCase("String")) + result = android.provider.Settings.Secure.putString(cr, parts[2], parts[3]); + else if (parts[1].equalsIgnoreCase("Long")) + result = android.provider.Settings.Secure.putLong(cr, parts[2], Long.parseLong(parts[3])); + else if (parts[1].equalsIgnoreCase("Int")) + result = android.provider.Settings.Secure.putInt(cr, parts[2], Integer.parseInt(parts[3])); + else if (parts[1].equalsIgnoreCase("Float")) + result = android.provider.Settings.Secure.putFloat(cr, parts[2], Float.parseFloat(parts[3])); + } + else + result = false; + } Miscellaneous.logEvent("i", "Variable", "Result of system setting change: " + String.valueOf(result), 4); diff --git a/app/src/main/java/com/jens/automation2/ActivityManageActionSetSystemSetting.java b/app/src/main/java/com/jens/automation2/ActivityManageActionSetSystemSetting.java index 2d1c122..5c27f90 100644 --- a/app/src/main/java/com/jens/automation2/ActivityManageActionSetSystemSetting.java +++ b/app/src/main/java/com/jens/automation2/ActivityManageActionSetSystemSetting.java @@ -18,12 +18,13 @@ import android.widget.Toast; public class ActivityManageActionSetSystemSetting extends Activity { - Spinner spinnerSettingDataType; + Spinner spinnerSettingTarget, spinnerSettingDataType; EditText etSettingName, etSettingValue; Button bSaveSetSystemSetting; TextView tvSetSystemSettingExamples, tvSetSystemSettingNoticeWriteSecureSettings; - ArrayAdapter settingDataTypeSpinnerAdapter; + ArrayAdapter settingTargetSpinnerAdapter, settingDataTypeSpinnerAdapter; + protected final static String[] targets = { "Global", "System", "Secure" }; protected final static String[] dataTypes = { "String", "Long", "Int", "Float" }; @Override @@ -34,6 +35,7 @@ public class ActivityManageActionSetSystemSetting extends Activity Miscellaneous.setUiTheme(this); this.setContentView(R.layout.activity_manage_action_set_system_setting); + spinnerSettingTarget = (Spinner) findViewById(R.id.spinnerSettingTarget); spinnerSettingDataType = (Spinner) findViewById(R.id.spinnerSettingDataType); etSettingName = (EditText)findViewById(R.id.etSettingName); etSettingValue = (EditText)findViewById(R.id.etSettingValue); @@ -41,6 +43,10 @@ public class ActivityManageActionSetSystemSetting extends Activity tvSetSystemSettingExamples = (TextView)findViewById(R.id.tvSetSystemSettingExamples); tvSetSystemSettingNoticeWriteSecureSettings = (TextView)findViewById(R.id.tvSetSystemSettingNoticeWriteSecureSettings); + settingTargetSpinnerAdapter = new ArrayAdapter(this, R.layout.text_view_for_poi_listview_mediumtextsize, targets); + spinnerSettingTarget.setAdapter(settingTargetSpinnerAdapter); + settingTargetSpinnerAdapter.notifyDataSetChanged(); + settingDataTypeSpinnerAdapter = new ArrayAdapter(this, R.layout.text_view_for_poi_listview_mediumtextsize, dataTypes); spinnerSettingDataType.setAdapter(settingDataTypeSpinnerAdapter); settingDataTypeSpinnerAdapter.notifyDataSetChanged(); @@ -52,6 +58,9 @@ public class ActivityManageActionSetSystemSetting extends Activity else tvSetSystemSettingNoticeWriteSecureSettings.setVisibility(View.VISIBLE); + // Make links clickable + tvSetSystemSettingNoticeWriteSecureSettings.setMovementMethod(LinkMovementMethod.getInstance()); + spinnerSettingDataType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override @@ -115,7 +124,7 @@ public class ActivityManageActionSetSystemSetting extends Activity Intent returnIntent = new Intent(); - String param2Data = dataTypes[spinnerSettingDataType.getSelectedItemPosition()] + Action.actionParameter2Split + etSettingName.getText().toString() + Action.actionParameter2Split + etSettingValue.getText().toString(); + String param2Data = targets[spinnerSettingTarget.getSelectedItemPosition()] + Action.actionParameter2Split + dataTypes[spinnerSettingDataType.getSelectedItemPosition()] + Action.actionParameter2Split + etSettingName.getText().toString() + Action.actionParameter2Split + etSettingValue.getText().toString(); returnIntent.putExtra(ActivityManageRule.intentNameActionParameter1, false); returnIntent.putExtra(ActivityManageRule.intentNameActionParameter2, param2Data); @@ -125,18 +134,34 @@ public class ActivityManageActionSetSystemSetting extends Activity } }); - if(getIntent().hasExtra(ActivityManageRule.intentNameActionParameter2)) + if(getIntent().hasExtra(ActivityManageRule.intentNameActionParameter2)) { // dataType, setting name, setting value - String[] components = getIntent().getStringExtra(ActivityManageRule.intentNameActionParameter2).split(Action.actionParameter2Split); + String[] components = getIntent().getStringExtra(ActivityManageRule.intentNameActionParameter2).split(Action.actionParameter2Split, -1); - int position = Miscellaneous.arraySearchIndexOf(dataTypes, components[0], false, true); - - if(position >= 0) + if(components.length == 4) { - spinnerSettingDataType.setSelection(position); - etSettingName.setText(components[1]); - etSettingValue.setText(components[2]); + int positionTarget = Miscellaneous.arraySearchIndexOf(targets, components[0], false, true); + int positionDataType = Miscellaneous.arraySearchIndexOf(dataTypes, components[1], false, true); + + if(positionDataType >= 0) + { + spinnerSettingTarget.setSelection(positionTarget); + spinnerSettingDataType.setSelection(positionDataType); + etSettingName.setText(components[2]); + etSettingValue.setText(components[3]); + } + } + else + { + int position = Miscellaneous.arraySearchIndexOf(dataTypes, components[0], false, true); + + if (position >= 0) + { + spinnerSettingDataType.setSelection(position); + etSettingName.setText(components[1]); + etSettingValue.setText(components[2]); + } } } } diff --git a/app/src/main/java/com/jens/automation2/ActivityPermissions.java b/app/src/main/java/com/jens/automation2/ActivityPermissions.java index 4a9b266..82a5656 100644 --- a/app/src/main/java/com/jens/automation2/ActivityPermissions.java +++ b/app/src/main/java/com/jens/automation2/ActivityPermissions.java @@ -798,7 +798,18 @@ public class ActivityPermissions extends Activity break; case setLocationService: case setSystemSetting: - addToArrayListUnique(Manifest.permission.WRITE_SECURE_SETTINGS, requiredPermissions); + String[] parts = action.getParameter2().split(Action.actionParameter2Split, -1); + if(parts.length < 4) + addToArrayListUnique(Manifest.permission.WRITE_SECURE_SETTINGS, requiredPermissions); + else + { + if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[0])) + addToArrayListUnique(Manifest.permission.WRITE_SECURE_SETTINGS, requiredPermissions); + else if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[1])) + addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions); + else if(parts[0].equals(ActivityManageActionSetSystemSetting.targets[2])) + addToArrayListUnique(Manifest.permission.WRITE_SECURE_SETTINGS, requiredPermissions); + } break; case setScreenBrightness: addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions); diff --git a/app/src/main/res/layout/activity_manage_action_set_system_setting.xml b/app/src/main/res/layout/activity_manage_action_set_system_setting.xml index b006dcf..7a8a926 100644 --- a/app/src/main/res/layout/activity_manage_action_set_system_setting.xml +++ b/app/src/main/res/layout/activity_manage_action_set_system_setting.xml @@ -72,6 +72,22 @@ + + + + + + + + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index f961133..9688757 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -812,7 +812,7 @@ Wenn Sie eine der folgenden Berechtigungen nicht erteilen und eine Systemmeldung wie \"Eingeschränkte Berechtigung\" erhalten, müssen Sie zuerst zu den Android-Einstellungen und dann zu den Anwendungen gehen und Automatisierung auswählen. Nun sollten sich 3 Punkte in der oberen rechten Ecke befinden. Klicken Sie auf \"Eingeschränkte Einstellungen zulassen\". Danach sollte die erforderliche Erlaubnis erteilt werden können. Dies sollte nur für die APK-Version der App gelten, nicht für die von F-Droid oder dem Play Store. Ortungsdienst festlegen Ortungsdienst einstellen - Leider kann die Erlaubnis WRITE_SECURE_SETTINGS nicht direkt auf Ihrem Android-Gerät erteilt werden. Stattdessen müssen Sie Ihr Gerät an einen Computer anschließen und die Berechtigung über ADB erteilen. Klicken Sie hier, um zu erfahren, wie Sie es gewähren können: https://server47.de/automation/adb_hack.php + Wenn Sie Global oder Secure als Ziel wählen, müssen Sie die Berechtigung WRITE_SECURE_SETTINGS erteilen. Leider kann diese Variante nicht direkt auf Ihrem Android-Gerät bereitgestellt werden. Stattdessen müssen Sie Ihr Gerät an einen Computer anschließen und die Berechtigung über ADB erteilen. Klicken Sie hier, um zu erfahren, wie Sie es gewähren können: https://server47.de/automation/adb_hack.php Ortungsdienst Das Ergebnis dieser Anfrage wird in der Variablen last_trigger_url_result gespeichert, wenn Sie es von einer anderen Regel aus überprüfen möchten. Im Falle von HTTP-Fehlern wie 404 ist der Wert \"HTTP_ERROR\". Kalendertermin diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 97ac52a..13c70be 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -811,7 +811,7 @@ Si no le otorga a uno el siguiente permiso y un mensaje del sistema como \"Ajuste restringido\", primero debe ir a la configuración de Android, luego a las aplicaciones, elija Automatización. Ahora debería haber 3 puntos en la esquina superior derecha. Haga clic en \"Permitir configuraciones restringidas\". Después de eso, el permiso necesario debería poder otorgarse. Esto solo debería aplicarse a la versión APK de la aplicación, no a las de F-Droid o Play Store. Encender/desactivar el servicio de ubicación Establecer el servicio de ubicación - Desafortunadamente, el permiso WRITE_SECURE_SETTINGS no se puede otorgar directamente en su dispositivo Android. En su lugar, debe conectar su dispositivo a una computadora y otorgar el permiso a través de ADB. Haga clic aquí para saber cómo otorgarlo: https://server47.de/automation/adb_hack.php + Si eliges Global o Seguro como objetivo, tendrás que conceder el permiso WRITE_SECURE_SETTINGS. Desafortunadamente, este no se puede entregar directamente en tu dispositivo Android. En su lugar, debe conectar su dispositivo a una computadora y otorgar el permiso a través de ADB. Haga clic aquí para saber cómo otorgarlo: https://server47.de/automation/adb_hack.php Servicio de localización El resultado de esta solicitud se almacenará en la variable last_trigger_url_result si desea verificarlo desde otra regla. En caso de errores HTTP como 404, el valor será \"HTTP_ERROR\". Evento de calendario diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 796f285..05ddfcc 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -811,7 +811,7 @@ Si vous ne parvenez pas à accorder à l\'un d\'entre eux l\'autorisation suivante et un message système tel que « Autorisation restreinte », vous devez d\'abord accéder aux paramètres Android, puis aux applications, puis choisir Automatisation. Maintenant, il devrait y avoir 3 points dans le coin supérieur droit. Cliquez sur « Autoriser les paramètres restreints ». Après cela, l\'autorisation nécessaire devrait pouvoir être accordée. Cela ne devrait s\'appliquer qu\'à la version APK de l\'application, pas à celles de F-Droid ou du Play Store. Définir le service de localisation Définir le service de localisation - Malheureusement, l\'autorisation WRITE_SECURE_SETTINGS ne peut pas être donnée directement sur votre appareil Android. Au lieu de cela, vous devez connecter votre appareil à un ordinateur et accorder l\'autorisation via ADB. Cliquez ici pour savoir comment l\'accorder : https://server47.de/automation/adb_hack.php + Si vous choisissez Global ou Sécurisé comme cible, vous devrez accorder la permission WRITE_SECURE_SETTINGS. Malheureusement, celle-ci ne peut pas être donnée directement sur votre appareil Android. Au lieu de cela, vous devez connecter votre appareil à un ordinateur et accorder l\'autorisation via ADB. Cliquez ici pour savoir comment l\'accorder: https://server47.de/automation/adb_hack.php Service de localisation Le résultat de cette requête sera stocké dans la variable last_triggerurl_result si vous souhaitez le vérifier à partir d\'une autre règle. En cas d\'erreurs HTTP comme 404, la valeur sera « HTTP_ERROR ». Événement de calendrier diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index e68157e..6017a33 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -812,7 +812,7 @@ Se non riesci a concedere una delle seguenti autorizzazioni e un messaggio di sistema come \"Autorizzazione limitata\", devi prima andare alle impostazioni di Android, quindi alle applicazioni, scegli Automazione. Ora dovrebbero esserci 3 punti nell\'angolo in alto a destra. Fai clic su \"Consenti impostazioni limitate\". Dopodiché dovrebbe essere concessa l\'autorizzazione necessaria. Questo dovrebbe valere solo per la versione APK dell\'app, non per quelle di F-Droid o Play Store. Impostare il servizio di localizzazione Impostare il servizio di localizzazione - Purtroppo l\'autorizzazione WRITE_SECURE_SETTINGS non può essere data direttamente sul tuo dispositivo Android. Invece, devi collegare il tuo dispositivo a un computer e concedere l\'autorizzazione tramite ADB. Clicca qui per scoprire come concederlo: https://server47.de/automation/adb_hack.php + Se scegli Global o Secure come bersaglio, dovrai concedere il permesso WRITE_SECURE_SETTINGS. Purtroppo questo non può essere fornito direttamente sul tuo dispositivo Android. Invece, devi collegare il tuo dispositivo a un computer e concedere l\'autorizzazione tramite ADB. Clicca qui per scoprire come concederlo: https://server47.de/automation/adb_hack.php Servizio di localizzazione Il risultato di questa richiesta verrà memorizzato nella variabile last_trigger_url_result se si desidera controllarlo da un\'altra regola. In caso di errori HTTP come 404 il valore sarà \"HTTP_ERROR\". Evento del calendario diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 5ac4c58..867a7a7 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -810,7 +810,7 @@ Als u er niet in slaagt om een van de volgende machtigingen en een systeembericht zoals \"Beperkte toestemming\" te verlenen, moet u eerst naar Android-instellingen gaan en vervolgens naar toepassingen en Automatisering kiezen. Nu zouden er 3 stippen in de rechterbovenhoek moeten zijn. Klik op \"Beperkte instellingen toestaan\". Daarna moet de benodigde toestemming aanvaardbaar zijn. Dit zou alleen van toepassing moeten zijn op de APK-versie van de app, niet die van F-Droid of Play Store. Locatieservice instellen Locatieservice instellen - Helaas kan de toestemming WRITE_SECURE_SETTINGS niet rechtstreeks op uw Android-apparaat worden gegeven. In plaats daarvan moet u uw apparaat op een computer aansluiten en de toestemming verlenen via ADB. Klik hier om te weten te komen hoe u het kunt toekennen: https://server47.de/automation/adb_hack.php + Als je Global of Secure als doelwit kiest, moet je toestemming geven WRITE_SECURE_SETTINGS. Helaas kan deze niet direct op je Android-apparaat worden gegeven. In plaats daarvan moet u uw apparaat op een computer aansluiten en de toestemming verlenen via ADB. Klik hier om te weten te komen hoe u het kunt toekennen: https://server47.de/automation/adb_hack.php Locatie service Het resultaat van dit verzoek wordt opgeslagen in de variabele last_trigger_url_result als u het vanuit een andere regel wilt controleren. In het geval van HTTP-fouten zoals 404 is de waarde \"HTTP_ERROR\". Agenda-afspraak diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 8c2e654..21b58c7 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -909,7 +909,7 @@ Jeśli nie uda Ci się przyznać następującego uprawnienia i komunikatu systemowego, takiego jak \"Ograniczone uprawnienia\", musisz najpierw przejść do ustawień Androida, a następnie aplikacji, wybrać Automatyzacja. Teraz w prawym górnym rogu powinny znajdować się 3 kropki. Kliknij \"Zezwól na ustawienia z ograniczeniami\". Następnie powinno być możliwe udzielenie niezbędnego pozwolenia. Powinno to dotyczyć tylko wersji APK aplikacji, a nie tych z F-Droid lub Sklepu Play. Ustawianie usługi lokalizacyjnej Ustawianie usługi lokalizacyjnej - Niestety WRITE_SECURE_SETTINGS uprawnień nie można nadać bezpośrednio na urządzeniu z Androidem. Zamiast tego musisz podłączyć urządzenie do komputera i przyznać uprawnienia przez ADB. Kliknij tutaj, aby dowiedzieć się, jak go przyznać: https://server47.de/automation/adb_hack.php + Jeśli wybierzesz Globalne lub Bezpieczne jako cel, musisz przyzwolić WRITE_SECURE_SETTINGS. Niestety tego nie można podać bezpośrednio na urządzeniu z Androidem. Zamiast tego musisz podłączyć urządzenie do komputera i przyznać uprawnienia przez ADB. Kliknij tutaj, aby dowiedzieć się, jak go przyznać: https://server47.de/automation/adb_hack.php Usługa lokalizacyjna Wynik tego żądania zostanie zapisany w zmiennej last_trigger_url_result, jeśli chcesz go sprawdzić z innej reguły. W przypadku błędów HTTP, takich jak 404, wartość będzie wynosić \"HTTP_ERROR\". Wydarzenie w kalendarzu diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d9bdefb..a231c61 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -869,7 +869,7 @@ Если вы не можете предоставить одно из следующих разрешений и системное сообщение типа «Ограниченное разрешение», вам нужно сначала перейти в настройки Android, затем в приложения, выбрать «Автоматизация». Теперь в правом верхнем углу должно быть 3 точки. Нажмите «Разрешить ограниченные настройки». После этого необходимо получить необходимое разрешение. Это должно относиться только к APK-версии приложения, а не к версии из F-Droid или Play Store. Настройка службы определения местоположения Настройка службы определения местоположения - К сожалению, разрешение WRITE_SECURE_SETTINGS не может быть дано непосредственно на вашем Android-устройстве. Вместо этого вам нужно подключить устройство к компьютеру и предоставить разрешение через ADB. Нажмите здесь, чтобы узнать, как его получить: https://server47.de/automation/adb_hack.php + Если вы выберете Global или Secure в качестве цели, вам потребуется предоставить разрешение WRITE_SECURE_SETTINGS. К сожалению, этот вариант нельзя налично использовать на вашем Android-устройстве. Вместо этого вам нужно подключить устройство к компьютеру и предоставить разрешение через ADB. Нажмите здесь, чтобы узнать, как его получить: https://server47.de/automation/adb_hack.php Служба определения местоположения Результат этого запроса будет сохранен в переменной last_trigger_url_result если вы захотите проверить его из другого правила. В случае ошибок HTTP, таких как 404, значение будет \"HTTP_ERROR\". Событие календаря diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index a328fd3..0c7d4c5 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -810,7 +810,7 @@ 如果您未能授予以下权限和\"受限权限\"之类的系统消息,则需要先转到 Android 设置,然后转到应用程序,选择自动化。现在右上角应该有 3 个点。单击\"允许受限设置\"。之后,应该可以授予必要的权限。这应该仅适用于应用的 APK 版本,而不适用于 F-Droid 或 Play 商店中的版本。 设置位置服务 设置位置服务 - 不幸的是,WRITE_SECURE_SETTINGS无法直接在您的 Android 设备上授予权限。相反,您需要将设备连接到计算机并通过 ADB 授予权限。单击此处了解如何授予它: https://server47.de/automation/adb_hack.php + 如果你选择全球或安全作为目标,你需要授予WRITE_SECURE_SETTINGS权限。遗憾的是,这个服务不能直接在你的安卓设备上提供。 相反,您需要将设备连接到计算机并通过 ADB 授予权限。单击此处了解如何授予它: https://server47.de/automation/adb_hack.php 定位服务 此请求的结果将存储在变量 last_triggerurl_result 中,如果您希望从其他规则中检查它。如果出现像 404 这样的 HTTP 错误,则该值将为\"HTTP_ERROR\"。 日历事件 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3ee6e4b..945dcca 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -903,7 +903,7 @@ If you fail to grant one the following permission and a system message like \"Restricted permission\" you need to go to Android settings first, then applications, choose Automation. Now there should be 3 dots in the upper right corner. Click \"Allow restricted settings\". After that the necessary permission should be grant-able. This should only apply to the APK version of the app, not the ones from F-Droid or Play Store. set location service Set location service - Unfortunately the permission WRITE_SECURE_SETTINGS cannot be given directly on your Android device. Instead you need to connect your device to a computer and grant the permission via ADB. Click here to find out how to grant it: https://server47.de/automation/adb_hack.php + If you choose Global or Secure as target you will need to grant the permission WRITE_SECURE_SETTINGS. Unfortunately this one cannot be given directly on your Android device. Instead, you need to connect your device to a computer and grant the permission via ADB. Click here to find out how to grant it: https://server47.de/automation/adb_hack.php Location service SENSOR_ONLY BATTERY_SAVING @@ -978,4 +978,5 @@ Set system setting I do not keep a list of possible settings. Please find those settings on your own. See here for some (incomplete) examples. If any parameter name starts with %1$s while method is POST, it will not be transmitted like the other parameters (with key=value), but transferred as main data. If the parameter ends with %2$s, no encoding will be performed. + Target \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/changelogs/149.txt b/fastlane/metadata/android/en-US/changelogs/149.txt index bbdc228..dd7bd80 100644 --- a/fastlane/metadata/android/en-US/changelogs/149.txt +++ b/fastlane/metadata/android/en-US/changelogs/149.txt @@ -1,3 +1,4 @@ +* Added option to choose between Global, System and Secure for set settings * Fixed: Crash when opening the application through the running service's notification * Fixed: Crash when starting service and show service icon was deactivated in app settings * Fixed: "Bluetooth connect" permission was not requested for turning Bluetooth on or off.