Merge remote-tracking branch 'origin/development' into development

This commit is contained in:
jens 2024-01-25 16:54:00 +01:00
commit e2027a457a
12 changed files with 115 additions and 87 deletions

View File

@ -8,7 +8,7 @@ android {
defaultConfig { defaultConfig {
applicationId "com.jens.automation2" applicationId "com.jens.automation2"
minSdkVersion 16 minSdkVersion 16
compileSdkVersion 31 compileSdkVersion 33
buildToolsVersion '29.0.2' buildToolsVersion '29.0.2'
useLibrary 'org.apache.http.legacy' useLibrary 'org.apache.http.legacy'
versionCode 138 versionCode 138

View File

@ -71,6 +71,7 @@
android:name="android.permission.WRITE_SECURE_SETTINGS" android:name="android.permission.WRITE_SECURE_SETTINGS"
tools:ignore="ProtectedPermissions" /> tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/> <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<!--android:maxSdkVersion="32" /> <!--android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />--> <uses-permission android:name="android.permission.USE_EXACT_ALARM" />-->
@ -107,7 +108,9 @@
android:exported="false" android:exported="false"
android:label="@string/app_name" /> android:label="@string/app_name" />
<receiver android:name=".receivers.StartupIntentReceiver" android:enabled="true" android:exported="true"> <receiver android:name=".receivers.StartupIntentReceiver"
android:enabled="true"
android:exported="true">
<intent-filter> <intent-filter>
<!--<action android:name="android.intent.action.SCREEN_ON" />--> <!--<action android:name="android.intent.action.SCREEN_ON" />-->
<!--<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />--> <!--<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />-->
@ -214,7 +217,6 @@
<activity android:name=".ActivityManageActionStartActivity" /> <activity android:name=".ActivityManageActionStartActivity" />
<activity android:name=".ActivityManageTriggerNfc" /> <activity android:name=".ActivityManageTriggerNfc" />
<activity android:name=".ActivityManageActionSpeakText" /> <activity android:name=".ActivityManageActionSpeakText" />
<activity android:name=".ActivityManageActionPlaySound" />
<activity android:name=".ActivityManageTriggerBluetooth" /> <activity android:name=".ActivityManageTriggerBluetooth" />
<activity android:name=".ActivityMainProfiles" /> <activity android:name=".ActivityMainProfiles" />
<activity android:name=".ActivityManageProfile" /> <activity android:name=".ActivityManageProfile" />
@ -235,8 +237,6 @@
</service> </service>
<activity android:name=".ActivityPermissions" />
<!-- https://developer.android.com/about/versions/pie/android-9.0-changes-28#apache-p--> <!-- https://developer.android.com/about/versions/pie/android-9.0-changes-28#apache-p-->
<uses-library android:name="org.apache.http.legacy" android:required="false"/> <uses-library android:name="org.apache.http.legacy" android:required="false"/>
@ -259,7 +259,8 @@
/> />
<service android:name=".MyAccessibilityService" <service android:name=".MyAccessibilityService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"> android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" /> <action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter> </intent-filter>

View File

@ -427,6 +427,12 @@ public class ActivityPermissions extends Activity
if(!havePermission(Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, workingContext)) if(!havePermission(Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, workingContext))
addToArrayListUnique(Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, requiredPermissions); addToArrayListUnique(Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, requiredPermissions);
if(Build.VERSION.SDK_INT >= 33 && BuildConfig.FLAVOR.equals(AutomationService.flavor_name_googleplay))
{
if (!havePermission(android.Manifest.permission.POST_NOTIFICATIONS, workingContext))
addToArrayListUnique(android.Manifest.permission.POST_NOTIFICATIONS, requiredPermissions);
}
if(!havePermission(Manifest.permission.READ_EXTERNAL_STORAGE, workingContext)) if(!havePermission(Manifest.permission.READ_EXTERNAL_STORAGE, workingContext))
{ {
for (Profile p : Profile.getProfileCollection()) for (Profile p : Profile.getProfileCollection())

View File

@ -265,7 +265,6 @@ public class NotificationListener extends NotificationListenerService// implemen
cancelNotification(sbn.getPackageName(), sbn.getTag(), sbn.getId()); cancelNotification(sbn.getPackageName(), sbn.getTag(), sbn.getId());
else else
cancelNotification(sbn.getKey()); cancelNotification(sbn.getKey());
} }
@RequiresApi(api = Build.VERSION_CODES.KITKAT) @RequiresApi(api = Build.VERSION_CODES.KITKAT)
@ -298,46 +297,4 @@ public class NotificationListener extends NotificationListenerService// implemen
if(!buttonFound) if(!buttonFound)
Miscellaneous.logEvent("w", "clickNotificationButton()", "Button with text \n" + buttonText + "\n could not found.", 2); Miscellaneous.logEvent("w", "clickNotificationButton()", "Button with text \n" + buttonText + "\n could not found.", 2);
} }
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public static boolean mayRuleStillBeActivatedForPendingNotifications(Rule rule)
{
for(RuleNotificationPair pair : notificationUsed)
Miscellaneous.logEvent("i", "mayRuleStillBeActivatedForPendingCalendarEvents()", "Existing pair of " + pair.rule.getName() + " and " + pair.notification, 5);
for(StatusBarNotification sbn : NotificationListener.getInstance().getActiveNotifications())
{
for(Trigger t : rule.getTriggerSet())
{
if(t.getTriggerType().equals(Trigger.Trigger_Enum.notification) && NotificationListener.getInstance().checkNotification(true, sbn))
{
if (!hasNotificationBeenUsedInRule(rule, convertNotificationToSimpleNotification(true, sbn)))
{
/*
If there are multiple parallel calendar events and a rule has multiple
triggers of type calendar event, we don't want the rule to fire only once.
*/
if(rule.getAmountOfTriggersForType(Trigger.Trigger_Enum.notification) == 1)
{
Miscellaneous.logEvent("i", "mayRuleStillBeActivatedForPendingNotifications()", "Rule " + rule.getName() + " has not been used in conjunction with notification " + sbn, 4);
return true;
}
}
}
}
}
return false;
}
public static boolean hasNotificationBeenUsedInRule(Rule rule, SimpleNotification notification)
{
for (RuleNotificationPair executedPair : notificationUsed)
{
if (executedPair.rule.equals(rule) && executedPair.notification.equals(notification))
return true;
}
return false;
}
} }

View File

@ -15,21 +15,21 @@ Mögliche Auslöser:
* Flugzeugmodus * Flugzeugmodus
* Roaming aktiv oder nicht * Roaming aktiv oder nicht
* NFC tags * NFC tags
************** Aktivitätserkennung (nicht in F-Droid Version) * Aktivitätserkennung (nicht in F-Droid Version)
* Bluetooth Gerät verbunden * Bluetooth Gerät verbunden
* Headset verbunden * Headset verbunden
* Benachrichtigungen anderer Anwendungen * Benachrichtigungen anderer Anwendungen
* Geräteausrichtung (Gyroskop) * Geräteausrichtung (Gyroskop)
* Profile aktiv oder nicht * Profile aktiv oder nicht
************ Bildschirmzustand (aus-/eingeschaltet) * Bildschirmzustand (aus-/eingeschaltet)
************ Musikwiedergabestatus * Musikwiedergabestatus
************ Gerät startet * Gerät startet
************ Dienst startet * Dienst startet
* Broadcasts anderer Anwendungen * Broadcasts anderer Anwendungen
************ Router-Zustand * Router-Zustand
************ Zustände (Bluetooth/WLAN aus oder an) * Zustände (Bluetooth/WLAN aus oder an)
* Variablen, die gesetzt wurden * Variablen, die gesetzt wurden
*********** Kalendertermine * Kalendertermine
* Telefongespräch im Gange * Telefongespräch im Gange
Mögliche Aktionen: Mögliche Aktionen:
@ -48,21 +48,21 @@ Mögliche Aktionen:
* Mobile Daten ein-/ausschalten * Mobile Daten ein-/ausschalten
* Text sprechen (TTS) * Text sprechen (TTS)
* Musikplayer öffnen * Musikplayer öffnen
********** Medienwiedergabe steuern * Medienwiedergabe steuern
* Bildschirmhelligkeit ändern * Bildschirmhelligkeit ändern
* Sounddatei abspielen * Sounddatei abspielen
******** Vibrieren * Vibrieren
* Benachrichtigungen erstellen * Benachrichtigungen erstellen
******* Benachrichtigungen schließen * Benachrichtigungen schließen
******* Broadcast verschicken * Broadcast verschicken
******** Script/Befehl ausführen * Script/Befehl ausführen
******* Bildschirm aktiv halten * Bildschirm aktiv halten
* Variablen setzen * Variablen setzen
* Telefonanrufe starten * Telefonanrufe starten
**********Telefonanrufe beenden * Telefonanrufe beenden
********** Text in Zwischenablage kopieren * Text in Zwischenablage kopieren
********* Screenshot erstellen * Screenshot erstellen
********* GPS Einstellungen setzen * GPS Einstellungen setzen
* SMS verschicken * SMS verschicken
Es ist ziemlich schwierig diese Anwendung über die vielen verschiedenen Geräte und Android Versionen am Laufen zu halten. Ich kann vieles im Emulator testen, aber eben nicht alles. Es ist ziemlich schwierig diese Anwendung über die vielen verschiedenen Geräte und Android Versionen am Laufen zu halten. Ich kann vieles im Emulator testen, aber eben nicht alles.

View File

@ -26,6 +26,7 @@ Déclencheurs :
* Appareil démarré * Appareil démarré
* Service démarré * Service démarré
* Variables qui ont été définies * Variables qui ont été définies
...et bien plus encore
Actions : Actions :
* Basculer Wifi (supprimé des appareils plus récents en raison des restrictions Google) * Basculer Wifi (supprimé des appareils plus récents en raison des restrictions Google)
@ -47,6 +48,7 @@ Actions :
* Fermer les notifications * Fermer les notifications
* Définir des variables * Définir des variables
* Initier des appels téléphoniques * Initier des appels téléphoniques
...et bien plus encore
Explications sur l'utilisation des autorisations : Explications sur l'utilisation des autorisations :
https://server47.de/automation/permissions.php https://server47.de/automation/permissions.php

View File

@ -23,6 +23,7 @@ Eventi supportati:
* Profilo attivo o meno * Profilo attivo o meno
* Broadcasts di altre app * Broadcasts di altre app
* Variabili che sono state impostate * Variabili che sono state impostate
...e molto altro ancora
Azioni supportate: Azioni supportate:
* Cambia lo stato del wifi * Cambia lo stato del wifi
@ -46,6 +47,7 @@ Azioni supportate:
* Creare notifiche * Creare notifiche
* Imposta variabili * Imposta variabili
* Avviare telefonate * Avviare telefonate
...e molto altro ancora
È piuttosto difficile mantere questa applicazione funzionante su tutti gli hardware esistenti ed includendo tutti i cambi che Android riceve fra una versione e l'altra. Posso effettuare tests nell'emulatore, ma non sarà possibile trovare tutti gli errori. È piuttosto difficile mantere questa applicazione funzionante su tutti gli hardware esistenti ed includendo tutti i cambi che Android riceve fra una versione e l'altra. Posso effettuare tests nell'emulatore, ma non sarà possibile trovare tutti gli errori.
Pertanto, se una certa funzione non funziona sul tuo dispositivo - fammelo sapere. Nel corso degli anni ho potuto risolvere tutti gli errori che sono stati riportati in maniera ragionevole. Infatti, per questo, dipendo dalle informazioni condivise. Pertanto, se una certa funzione non funziona sul tuo dispositivo - fammelo sapere. Nel corso degli anni ho potuto risolvere tutti gli errori che sono stati riportati in maniera ragionevole. Infatti, per questo, dipendo dalle informazioni condivise.

View File

@ -25,6 +25,7 @@ Ondersteunde triggers:
* Profiel actief of niet * Profiel actief of niet
* Broadcasts van andere apps * Broadcasts van andere apps
* Variabelen die zijn ingesteld * Variabelen die zijn ingesteld
...en nog veel meer
Ondersteunde acties: Ondersteunde acties:
* Wijzig wifi status * Wijzig wifi status
@ -48,6 +49,7 @@ Ondersteunde acties:
* Meldingen maken * Meldingen maken
* Stel variabelen in * Stel variabelen in
* Start telefoongesprekken * Start telefoongesprekken
...en nog veel meer
Het is lastig om deze App werkend te houden over de vele verschillende hardware en de vele veranderingen die Android ondergaat in de loop der versies. Het is lastig om deze App werkend te houden over de vele verschillende hardware en de vele veranderingen die Android ondergaat in de loop der versies.
Ik test het in een emulator, maar dat kan niet alle bugs laten zien. Ik test het in een emulator, maar dat kan niet alle bugs laten zien.

View File

@ -1,23 +1,77 @@
Skaner kodów kreskowych to darmowa i otwarta aplikacja, która umożliwia odczytywanie i generowanie kodów kreskowych. Może gromadzić informacje o produktach spożywczych, kosmetykach i książkach. Twórz reguły składające się z wyzwalaczy i akcji. Wybitnym przykładem może być coś takiego jak "Wycisz telefon w pracy".
Różne formaty kodów kreskowych są zarządzane przez aplikację: Oto lista obsługiwanych wyzwalaczy i akcji:
• dwuwymiarowe kody kreskowych: QR Code, Data Matrix, PDF 417, AZTEC
• jednowymiarowe kody kreskowe: EAN 13, EAN 8, UPC A, UPC E, Code 128, Code 93, Code 39, Codabar, IT
Zbiera informacje o produkcie podczas skanowania: Obsługiwane wyzwalacze:
• Produkty spożywcze z Open Food Facts * Lokalizacja
• Kosmetyki z otwartymi faktami na temat urody * Dzień/godzina
• Produkty spożywcze dla zwierząt domowych z Open Pet Food Fakty * Stan ładowania
• Książki z Open Library * Poziom naładowania baterii
* Nawiązano połączenie USB z komputerem
* Aktualna prędkość
* Szum tła (tylko do Androida 7)
* Połączenie Wi-Fi
* Inne uruchomione aplikacje
* Tryb samolotowy
* Status roamingu
* Tagi NFC
* Wykrywanie aktywności (nie w wersji F-Droid)
* Połączenie Bluetooth
* Podłączony zestaw słuchawkowy
* Powiadomienia o innych aplikacjach
* Orientacja urządzenia (żyroskop)
* Profil aktywny lub nie
* Stan ekranu (włączony lub wyłączony)
* Stan odtwarzania multimediów
* Urządzenie się uruchamia
* Usługa jest uruchamiana
* Transmisje innych aplikacji
* Stan routera
* Stany systemu (Bluetooth/Wi-Fi)
* Zmienne, które zostały ustawione
* Spotkania w kalendarzu
* Rozmowa telefoniczna uruchomiona
Funkcje aplikacji : Obsługiwane działania:
• Wystarczy skierować aparat smartfona na kod kreskowy i natychmiast otrzymać o nim informację. Możesz także skanować kody kreskowe za pomocą obrazu w smartfonie. * Zmień stan Wi-Fi
• Za pomocą prostego skanowania czytaj wizytówki, dodawaj nowe kontakty, dodawaj nowe wydarzenia do swojego planu, otwieraj adresy URL, a nawet łącz się z Wi-Fi. * Zmień stan bluetooth
• Skanuj kody kreskowe produktów spożywczych, aby otrzymywać informacje o ich składzie dzięki bazom danych Open Food Facts i Open Beauty Facts. * Przełącz tethering USB
• Wyszukaj informacje o skanowanym produkcie, dzięki szybkiemu badaniu na różnych stronach internetowych, takich jak Amazon lub Fnac. * Przełącz tethering Wi-Fi
• Śledź wszystkie zeskanowane kody kreskowe za pomocą narzędzia historii. * Przełącz tethering Bluetooth
• Generuj własne kody kreskowe * Przełącz automatyczne obracanie ekranu
• Dostosuj interfejs za pomocą różnych kolorów, jasnego motywu lub ciemnego. Aplikacja integruje funkcje Androida 12, umożliwiając dostosowanie kolorów w zależności od tapety. * Wyślij żądanie HTTP
• Teksty są w całości tłumaczone na język angielski, hiszpański, francuski, niemiecki, polski, rosyjski i chiński. * Zmień ustawienie dzwonka / dźwięku
* Uruchom inną aplikację
* Czekaj (pomiędzy innymi czynnościami)
* Włącz lub wyłącz ekran
* Przełącz tryb samolotowy
* Przełącz komórkowe połączenie transmisji danychc
* Odczytaj tekst
* Otwórz odtwarzacz muzyki
* Kontroluj odtwarzanie multimediów
* Zmień jasność ekranu
* Odtwórz plik dźwiękowy
* Tworzenie powiadomień
* Zamknij powiadomienia
* Wysyłaj transmisje
* Uruchom skrypt/polecenie
* Utrzymuj aktywny ekran
* Ustawianie zmiennych
* Inicjowanie połączeń telefonicznych
* Zakończ połączenia telefoniczne
* Skopiuj tekst do schowka
* Zrób zrzut ekranu
* Zmień ustawienie lokalizacji
* Wyślij wiadomość tekstową
Ta aplikacja szanuje Twoją prywatność. Nie zawiera żadnych trackerów i nie zbiera żadnych danych. Dość trudno jest utrzymać tę aplikację działającą na wielu różnych urządzeniach, a także na wielu zmianach, jakie Android przechodzi w wersjach. Mogę to przetestować w emulatorze, ale to nie może pokazać wszystkich błędów.
Więc jeśli jakaś funkcja nie działa na Twoim urządzeniu - daj mi znać. Przez lata naprawiłem prawie wszystkie błędy, które zostały mi rozsądnie zgłoszone. Ale w tym zakresie jestem zależny od twojego wkładu. Jeśli masz problem i myślisz o skontaktowaniu się ze mną, proszę - Najpierw zaktualizuj do najnowszej wersji i sprawdź, czy problem nadal występuje. - Najpierw sprawdź listę znanych problemów: https://server47.de/automation/index.php#knownProblems
Darowizny to z pewnością dobry, ale nie jedyny sposób na zmotywowanie mnie :-)
* Jeśli chcesz mnie wesprzeć, możesz również wystawić pozytywną recenzję aplikacji w Google Play (https://play.google.com/store/apps/details?id=com.jens.automation2).
* Jeśli podoba Ci się aplikacja, zawsze mile widziane są ciepłe słowa za pośrednictwem poczty elektronicznej.
* Ponadto zawsze mogę skorzystać z pomocy w tłumaczeniu aplikacji. Angielski, niemiecki i trochę hiszpański należą do moich własnych umiejętności. Italiano e russo sono già coperti. Ale wszystko inne jest więcej niż mile widziane.
* Jeśli masz talent/doświadczenie w projektowaniu graficznym i masz jakieś pomysły na ładniejsze ikony, daj mi znać.
* Jeśli masz ciekawy przypadek użycia lub znalazłeś sposób na połączenie wyzwalaczy i akcji, aby osiągnąć coś intrygującego i uważasz, że warto umieścić to na stronie przykładów (https://server47.de/automation/examples.html), daj mi znać.
Wyjaśnienie wielu uprawnień można znaleźć tutaj: https://server47.de/automation/permissions.php

View File

@ -1 +1 @@
Darmowa i otwartoźródłowa aplikacja do odycztywania i tworzenia kodów QR. Zautomatyzuj rzeczy na swoim urządzeniu, tworząc reguły.

View File

@ -23,6 +23,7 @@
* Состояние профиля * Состояние профиля
* Broadcast от других приложений * Broadcast от других приложений
* Переменные, которые были установлены * Переменные, которые были установлены
...и многое другое
Действия: Действия:
* Вкл/Выкл Wi-Fi * Вкл/Выкл Wi-Fi
@ -45,6 +46,7 @@
* Создать уведомление * Создать уведомление
* Установка переменных * Установка переменных
* Инициирование телефонных звонков * Инициирование телефонных звонков
...и многое другое
Достаточно сложно поддерживать работоспособность этого приложения на всех версиях устройств и Android. Я проверяю его в эмуляторе, но это не может обнаружить все ошибки. Достаточно сложно поддерживать работоспособность этого приложения на всех версиях устройств и Android. Я проверяю его в эмуляторе, но это не может обнаружить все ошибки.
Поэтому если какая-то функция не рабоатет на вашем устройстве- дайте мне знать. Я постоянно устраняю ошибки, полученные от пользователей, но для этого мне нужна обратная связь. Поэтому если какая-то функция не рабоатет на вашем устройстве- дайте мне знать. Я постоянно устраняю ошибки, полученные от пользователей, но для этого мне нужна обратная связь.

View File

@ -23,6 +23,7 @@
* 情景模式是否激活 * 情景模式是否激活
* 其他应用的广播 * 其他应用的广播
* 已设置的变量 * 已设置的变量
...以及更多
支持的动作: 支持的动作:
* 更改 WLAN 状态 * 更改 WLAN 状态
@ -46,6 +47,7 @@
* 创建通知 * 创建通知
* 设置变量 * 设置变量
* 发起通话 * 发起通话
...以及更多
保持这个应用在各种不同硬件、Android 版本的大量更改中正常运行是很困难的。我可以在模拟器中测试,但这样不能显示所有的错误。 保持这个应用在各种不同硬件、Android 版本的大量更改中正常运行是很困难的。我可以在模拟器中测试,但这样不能显示所有的错误。
因此,如果某个功能无法在您的设备上运行——请告诉我。多年来,我已经修复了几乎所有合理地报告给我的错误。但为此我依赖于您的输入。 因此,如果某个功能无法在您的设备上运行——请告诉我。多年来,我已经修复了几乎所有合理地报告给我的错误。但为此我依赖于您的输入。