New version prep, fix attempt in notification listener
This commit is contained in:
parent
b7677bdcce
commit
f7ff8a38e1
@ -12,7 +12,7 @@ android {
|
||||
buildToolsVersion '29.0.2'
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
versionCode 138
|
||||
versionName "1.7.21"
|
||||
versionName "1.8"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ import com.google.android.gms.location.DetectedActivity;
|
||||
import com.jens.automation2.receivers.ActivityDetectionReceiver;
|
||||
import com.jens.automation2.receivers.BroadcastListener;
|
||||
import com.jens.automation2.receivers.CalendarReceiver;
|
||||
import com.jens.automation2.receivers.NotificationListener;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
@ -379,6 +380,11 @@ public class Rule implements Comparable<Rule>
|
||||
Miscellaneous.logEvent("i", "getsGreenLight()", "Rule \"" + getName() + "\" applies and has flipped since its last execution.", 4);
|
||||
return true;
|
||||
}
|
||||
// else if(hasTriggerOfType(Trigger.Trigger_Enum.notification) && NotificationListener.mayRuleStillBeActivatedForPendingNotifications(this))
|
||||
// {
|
||||
// Miscellaneous.logEvent("i", "getsGreenLight()", "Rule \"" + getName() + "\" applies, has not flipped since its last execution, but may still be executed for other notifications.", 4);
|
||||
// return true;
|
||||
// }
|
||||
else if(hasTriggerOfType(Trigger.Trigger_Enum.calendarEvent) && CalendarReceiver.mayRuleStillBeActivatedForPendingCalendarEvents(this))
|
||||
{
|
||||
Miscellaneous.logEvent("i", "getsGreenLight()", "Rule \"" + getName() + "\" applies, has not flipped since its last execution, but may still be executed for other calendar events.", 4);
|
||||
|
@ -37,6 +37,7 @@ import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.jens.automation2.location.LocationProvider;
|
||||
import com.jens.automation2.receivers.CalendarReceiver;
|
||||
import com.jens.automation2.receivers.NotificationListener;
|
||||
import com.jens.automation2.receivers.PhoneStatusListener;
|
||||
|
||||
@ -826,6 +827,42 @@ public class Miscellaneous extends Service
|
||||
}
|
||||
}
|
||||
|
||||
if(source.contains("[last_calendar_title]"))
|
||||
{
|
||||
try
|
||||
{
|
||||
source = source.replace("[last_calendar_title]", CalendarReceiver.getLastTriggeringEvent().title);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Miscellaneous.logEvent("w", "Variable replacement", "Error replacing variable last_calendar_title.", 3);
|
||||
}
|
||||
}
|
||||
|
||||
if(source.contains("[last_calendar_description]"))
|
||||
{
|
||||
try
|
||||
{
|
||||
source = source.replace("[last_calendar_description]", CalendarReceiver.getLastTriggeringEvent().description);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Miscellaneous.logEvent("w", "Variable replacement", "Error replacing variable last_calendar_description.", 3);
|
||||
}
|
||||
}
|
||||
|
||||
if(source.contains("[last_calendar_location]"))
|
||||
{
|
||||
try
|
||||
{
|
||||
source = source.replace("[last_calendar_location]", CalendarReceiver.getLastTriggeringEvent().location);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Miscellaneous.logEvent("w", "Variable replacement", "Error replacing variable last_calendar_location.", 3);
|
||||
}
|
||||
}
|
||||
|
||||
while(source.contains("[variable-"))
|
||||
{
|
||||
int pos1 = source.indexOf("[variable-");
|
||||
|
@ -366,6 +366,14 @@ public class Trigger
|
||||
else
|
||||
Miscellaneous.logEvent("i", "NotificationCheck", "A required text for a notification trigger was not specified.", 5);
|
||||
|
||||
/*
|
||||
We can only get here through the startup routine of the main service.
|
||||
Because the notification did not come in at runtime, but was there
|
||||
before we started, w need to take a record of it.
|
||||
*/
|
||||
if(NotificationListener.getLastNotification() == null)
|
||||
NotificationListener.setLastNotification(sn);
|
||||
|
||||
foundMatch = true;
|
||||
break;
|
||||
}
|
||||
|
@ -51,6 +51,16 @@ public class CalendarReceiver extends BroadcastReceiver implements AutomationLis
|
||||
static AlarmManager alarmManager = null;
|
||||
static boolean wakeupNeedsToBeScheduledOrRescheduled = false;
|
||||
|
||||
public static CalendarEvent getLastTriggeringEvent()
|
||||
{
|
||||
if(calendarEventsUsed.size() > 0)
|
||||
{
|
||||
return calendarEventsUsed.get(calendarEventsUsed.size() -1).event;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static class RuleEventPair
|
||||
{
|
||||
Rule rule;
|
||||
|
@ -3,13 +3,13 @@ package com.jens.automation2.receivers;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Notification;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.service.notification.NotificationListenerService;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import com.jens.automation2.AutomationService;
|
||||
@ -19,6 +19,7 @@ import com.jens.automation2.Trigger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
// See here for reference: http://gmariotti.blogspot.com/2013/11/notificationlistenerservice-and-kitkat.html
|
||||
|
||||
@ -41,11 +42,42 @@ public class NotificationListener extends NotificationListenerService// implemen
|
||||
// a bitmap to be used instead of the small icon when showing the notification payload
|
||||
public static final String EXTRA_LARGE_ICON = "android.largeIcon";
|
||||
|
||||
public static void setLastNotification(SimpleNotification notification)
|
||||
{
|
||||
lastNotification = notification;
|
||||
}
|
||||
public static SimpleNotification getLastNotification()
|
||||
{
|
||||
return lastNotification;
|
||||
}
|
||||
|
||||
// To determine for which notifications which rules have been executed
|
||||
static List<RuleNotificationPair> notificationUsed = new ArrayList<>();
|
||||
|
||||
public static class RuleNotificationPair
|
||||
{
|
||||
Rule rule;
|
||||
SimpleNotification notification;
|
||||
|
||||
public RuleNotificationPair(Rule rule, SimpleNotification sn)
|
||||
{
|
||||
this.rule = rule;
|
||||
this.notification = sn;
|
||||
}
|
||||
}
|
||||
|
||||
public static void addUsedPair(RuleNotificationPair pair)
|
||||
{
|
||||
// Add pair only if it's not in the list already.
|
||||
for(RuleNotificationPair usedPair : notificationUsed)
|
||||
{
|
||||
if(usedPair.rule.equals(pair.rule) && usedPair.notification.equals(pair.notification))
|
||||
return;
|
||||
}
|
||||
|
||||
notificationUsed.add(pair);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate()
|
||||
{
|
||||
@ -211,6 +243,19 @@ public class NotificationListener extends NotificationListenerService// implemen
|
||||
", text='" + text + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(@Nullable Object obj)
|
||||
{
|
||||
return
|
||||
this.publishTime.getTimeInMillis() == ((SimpleNotification)obj).publishTime.getTimeInMillis()
|
||||
&&
|
||||
this.app.equals(((SimpleNotification)obj).app)
|
||||
&&
|
||||
this.title.equals(((SimpleNotification)obj).title)
|
||||
&&
|
||||
this.text.equals(((SimpleNotification)obj).text);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -264,4 +309,46 @@ public class NotificationListener extends NotificationListenerService// implemen
|
||||
if(!buttonFound)
|
||||
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;
|
||||
}
|
||||
}
|
@ -65,7 +65,7 @@
|
||||
<string name="end">Ende</string>
|
||||
<string name="save">Speichern</string>
|
||||
<string name="urlToTrigger">URL, die ausgelöst werden soll:</string>
|
||||
<string name="urlLegend">Variablen:\nSie können die folgenden Variablen verwenden. Vor dem Auslösen werden sie mit dem entsprechenden Wert Ihres Geräts ersetzt. Die Klammern müssen in den Text mit aufgenommen werden.\n\n[uniqueid] - Die Unique ID Ihres Geräts\n[serialnr] - Die Seriennummer Ihres Geräts (< Android 9)\n[latitude] - Ihr gegenwärtiger Breitengrad\n[longitude] - Ihr gegenwärtiger Längengrad\n[phonenr] - Nummer des letzten ein- oder ausgehenden Anrufs\n[d] - Tag des Monats, 2-stellig mit führender Null\n[m] - Monat als Zahl, mit führenden Nullen\n[Y] - Vierstellige Jahreszahl\n[h] - Stunde im 12-Stunden-Format, mit führenden Nullen\n[H] - Stunde im 24-Stunden-Format, mit führenden Nullen\n[i] - Minuten, mit führenden Nullen\n[s] - Sekunden, mit führenden Nullen\n[ms] - milliseconds\n[notificationTitle] - Titel der letzten Benachrichtigung\n[notificationText] - Text der letzten Benachrichtigung\n[last_triggerurl_result] - Das Ergebnis der letzten Ausführung der triggerUrl-Aktion\n[last_run_executable_exit_code] - Der exit code der letzten starte-Programm Aktion\n[last_run_executable_output] - Die Ausgabe der letzten starte-Programm Aktion (nur für nicht-root)\n[variable-VARIABLENAME] - Der Wert Ihrer selbst definitierten Variable</string>
|
||||
<string name="urlLegend">Variablen:\nSie können die folgenden Variablen verwenden. Vor dem Auslösen werden sie mit dem entsprechenden Wert Ihres Geräts ersetzt. Die Klammern müssen in den Text mit aufgenommen werden.\n\n[uniqueid] - Die Unique ID Ihres Geräts\n[serialnr] - Die Seriennummer Ihres Geräts (< Android 9)\n[latitude] - Ihr gegenwärtiger Breitengrad\n[longitude] - Ihr gegenwärtiger Längengrad\n[phonenr] - Nummer des letzten ein- oder ausgehenden Anrufs\n[d] - Tag des Monats, 2-stellig mit führender Null\n[m] - Monat als Zahl, mit führenden Nullen\n[Y] - Vierstellige Jahreszahl\n[h] - Stunde im 12-Stunden-Format, mit führenden Nullen\n[H] - Stunde im 24-Stunden-Format, mit führenden Nullen\n[i] - Minuten, mit führenden Nullen\n[s] - Sekunden, mit führenden Nullen\n[ms] - milliseconds\n[notificationTitle] - Titel der letzten Benachrichtigung\n[notificationText] - Text der letzten Benachrichtigung\n[last_triggerurl_result] - Das Ergebnis der letzten Ausführung der triggerUrl-Aktion\n[last_run_executable_exit_code] - Der exit code der letzten starte-Programm Aktion\n[last_run_executable_output] - Die Ausgabe der letzten starte-Programm Aktion (nur für nicht-root)\n[last_calendar_title] - Titel des letzten Regel-auslösenden Kalendertermins\n[last_calendar_description] - Beschreibung des letzten Regel-auslösenden Kalendertermins\n[last_calendar_location] - Ort des letzten Regel-auslösenden Kalendertermins\n[variable-VARIABLENAME] - Der Wert Ihrer selbst definitierten Variable</string>
|
||||
<string name="wifi">WLAN</string>
|
||||
<string name="activating">Aktiviere</string>
|
||||
<string name="deactivating">Deaktiviere</string>
|
||||
|
@ -127,7 +127,7 @@
|
||||
<string name="actionTurnWifiOn">encender wifi</string>
|
||||
<string name="actionTurnWifiOff">desactivar wifi</string>
|
||||
<string name="actionTurnBluetoothOff">desactivar Bluetooth</string>
|
||||
<string name="actionTriggerUrl">Abrir URL en antecedentes</string>
|
||||
<string name="actionTriggerUrl">Abrir URL en el fondo</string>
|
||||
<string name="actionChangeSoundProfile">Cambiar perfil sonido</string>
|
||||
<string name="actionTurnUsbTetheringOn">encender enrutador USB</string>
|
||||
<string name="actionTurnUsbTetheringOff">desactivar enrutador USB</string>
|
||||
@ -367,7 +367,7 @@
|
||||
<string name="networkAccuracy">Red exactitud [m]</string>
|
||||
<string name="minimumTimeForLocationUpdates">Tiempo mínimo para cambio en milisegundos para actualizar posición</string>
|
||||
<string name="timeForUpdate">Tiempo para actualizar [milisegundos]</string>
|
||||
<string name="urlLegend">Variables: Puede usar esas variables. Mientras ejecuta van a sustituir con los valores correspondientes en su dispositivo. Incluya las paréntecis en su texto.\n\n[uniqueid] - el número único de su dispositivo\n[serialnr] - el número de serie de su dispositivo (< Android 9)\n[latitude] - su latitud\n[longitude] - su longitud\n[phonenr] - Ùltimo número de llamada realizada tanto de salida como entrante\n[d] - Dia del mes, 2 digitos con cero al comienzo\n[m] - número del mes, 2 digitos con cero al comienzo\n[Y] - Número del año, 4 digitos\n[h] - Hora, formato 12 horas con cero al comienzo\n[H] - Hora, formato 24 horas con cero al comienzo\n[i] - Minutos con cero al comienzo\n[s] - Segundos con cero al comienzo\n[ms] - milisegundos\n[notificationTitle] - Título de la última notificación\n[notificationText] - Texto de la última notificación\n[last_triggerurl_result] - El resultado de la última ejecución de la acción triggerUrl\n[last_run_executable_exit_code] - El código de salida de la última acción ejecutable ejecutada\n[last_run_executable_output] - El resultado de la última acción ejecutable ejecutada (solo para no root)\n[variable-VARIABLENAME] - El valor de la variable definida personalizada</string>
|
||||
<string name="urlLegend">Variables: Puede usar esas variables. Mientras ejecuta van a sustituir con los valores correspondientes en su dispositivo. Incluya las paréntecis en su texto.\n\n[uniqueid] - el número único de su dispositivo\n[serialnr] - el número de serie de su dispositivo (< Android 9)\n[latitude] - su latitud\n[longitude] - su longitud\n[phonenr] - Ùltimo número de llamada realizada tanto de salida como entrante\n[d] - Dia del mes, 2 digitos con cero al comienzo\n[m] - número del mes, 2 digitos con cero al comienzo\n[Y] - Número del año, 4 digitos\n[h] - Hora, formato 12 horas con cero al comienzo\n[H] - Hora, formato 24 horas con cero al comienzo\n[i] - Minutos con cero al comienzo\n[s] - Segundos con cero al comienzo\n[ms] - milisegundos\n[notificationTitle] - Título de la última notificación\n[notificationText] - Texto de la última notificación\n[last_triggerurl_result] - El resultado de la última ejecución de la acción triggerUrl\n[last_run_executable_exit_code] - El código de salida de la última acción ejecutable ejecutada\n[last_run_executable_output] - El resultado de la última acción ejecutable ejecutada (solo para no root)Titel des letzten Regel-auslösenden Kalendertermins\n[last_calendar_title] - Título de la ultima cita en el calendar que ejecutó una regla\n[last_calendar_description] - Descriptión de la ultima cita en el calendar que ejecutó una regla\n[last_calendar_location] - Ubicación de la ultima cita en el calendar que ejecutó una regla\n[variable-VARIABLENAME] - El valor de la variable definida personalizada</string>
|
||||
<string name="screenRotationAlreadyEnabled">Rotación del monitor todavia esta activado.</string>
|
||||
<string name="screenRotationAlreadyDisabled">Rotación del monitor todavia esta desactivado.</string>
|
||||
<string name="needLocationPermForWifiList">Se puede usar la lista de wifis conocidos para determinar los sitios en los cuales estuvo. Por eso el permiso de localización es necesario para cargar la lista de wifis. Si quiere elegir uno de la lista tiene que conceder el permiso. En caso contrario todavia puede introducir un nombre wifi manualmente.</string>
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="end">Arrêt</string>
|
||||
<string name="save">Enregistrer</string>
|
||||
<string name="urlToTrigger">URL à déclencher :</string>
|
||||
<string name="urlLegend">Variables :\nVous pouvez utiliser les variables suivantes. Lors du déclenchement, elles seront remplacées par les variables correspondantes sur votre appareil. Insérez les parenthèses dans votre texte.\n\n[uniqueid] - Identifiant unique de votre appareil\n[serialnr] - Numéro de série de votre appareil (< Android 9)\n[latitude] - Latitude de votre appraeil\n[longitude] - Longitude de votre appraeil\n[phonenr] - Numéro des derniers appels entrants ou sortants\n[d] - Jour du mois, @ chiffres commençant par 0\n[m] - Valeur numérique du mois, avec @ chiffres\n[Y] - Valeur numérique de l’année, $ chiffres\n[h] - Format horaire 12 heures, 2 chiffres\n[H] - Format horaire 24 heures, 2 chiffres\n[i] - Nombre de minutes, 2 chiffres\n[s] - Nombre de secondes, 2 chiffres\n[ms] - Nombre de millisecondes\n[notificationTitle] - titre de la dernière notification\n[notificationText] - texte de la dernière notification\n[last_triggerurl_result] - Résultat de l\'exécution de la dernière action triggerUrl\n[last_run_executable_exit_code] - Le code de sortie de la dernière action exécutable exécutée\n[last_run_executable_output] - La sortie de la dernière action exécutable exécutée (uniquement pour les non-roots)\n[variable-VARIABLENAME] - Valeur de votre variable définie personnalisée</string>
|
||||
<string name="urlLegend">Variables :\nVous pouvez utiliser les variables suivantes. Lors du déclenchement, elles seront remplacées par les variables correspondantes sur votre appareil. Insérez les parenthèses dans votre texte.\n\n[uniqueid] - Identifiant unique de votre appareil\n[serialnr] - Numéro de série de votre appareil (< Android 9)\n[latitude] - Latitude de votre appraeil\n[longitude] - Longitude de votre appraeil\n[phonenr] - Numéro des derniers appels entrants ou sortants\n[d] - Jour du mois, @ chiffres commençant par 0\n[m] - Valeur numérique du mois, avec @ chiffres\n[Y] - Valeur numérique de l’année, $ chiffres\n[h] - Format horaire 12 heures, 2 chiffres\n[H] - Format horaire 24 heures, 2 chiffres\n[i] - Nombre de minutes, 2 chiffres\n[s] - Nombre de secondes, 2 chiffres\n[ms] - Nombre de millisecondes\n[notificationTitle] - titre de la dernière notification\n[notificationText] - texte de la dernière notification\n[last_triggerurl_result] - Résultat de l\'exécution de la dernière action triggerUrl\n[last_run_executable_exit_code] - Le code de sortie de la dernière action exécutable exécutée\n[last_run_executable_output] - La sortie de la dernière action exécutable exécutée (uniquement pour les non-roots)\n[last_calendar_title] - Titre du dernier événement de calendrier déclenchant une règle\n[last_calendar_description] - Description du dernier événement de calendrier déclenchant une règle\n[last_calendar_location] - Emplacement du dernier événement de calendrier déclenchant la règle\n[variable-VARIABLENAME] - Valeur de votre variable définie personnalisée</string>
|
||||
<string name="wifi">wifi</string>
|
||||
<string name="activating">Allumer</string>
|
||||
<string name="deactivating">Éteindre</string>
|
||||
@ -825,7 +825,6 @@
|
||||
<string name="calendarStringTentative">tentative</string>
|
||||
<string name="calendarStringOutOfOffice">absent du bureau</string>
|
||||
<string name="calendarStringWorkingElsewhere">Travailler ailleurs</string>
|
||||
<string name="calendarStringWorkingElsewhere">Travailler ailleurs</string>
|
||||
<string name="selectingNoneItemForAllToMatch">Si vous ne sélectionnez aucun élément, n\'importe lequel d\'entre eux sera acceptable.</string>
|
||||
<string name="calendars">Calendriers</string>
|
||||
<string name="calendarAvailabilityTypesUnsupported">Il se peut que seuls les 3 premiers types fonctionnent réellement car les autres types ne font pas partie de l\'interface de calendrier standard d\'Android.</string>
|
||||
|
@ -542,7 +542,7 @@
|
||||
<string name="tuesday">Martedì</string>
|
||||
<string name="unknownError">Errore indeterminato.</string>
|
||||
<string name="until">finchè</string>
|
||||
<string name="urlLegend">Variabili:\n È possibile utilizzare le seguenti variabili. Quando attivate, saranno sostituite con il valore corrispondente sul tuo dispositivo. Includi le parentesi nel tuo testo.\n\n[uniqueid] - L\'ID unico del tuo dispositivo\n[serialnr] - Il numero di serie del tuo dispositivio (< Android 9)\n[latitude] - La latitudine del tuo dispositivo\n[longitude] - La longitudine del tuo dispositivo\n[phonenr] - Numero dell\'ultima chiamata (entrante o uscente)\n[d] - Il giorno del mese, sempre 2 cifre con zero iniziale \n[m] - Mese in formato numerico, sempre 2 cifre con zero iniziale \n[Y] - L\’anno, sempre con 4 cifre\n[h] - Ore in formato 12 ore, sempre 2 cifre con due punti\n[H] - Ore in formato 24 ore, sempre 2 cifre con due punti\n[i] - Minuti, sempre 2 cifre\n[s] - Secondi, sempre 2 cifre\n[ms] - millisecondi, sempre 3 cifre\n[notificationTitle] - titolo dell\'ultima notifica\n[notificationText] - testo dell\'ultima notifica\n[last_triggerurl_result] - Risultato dell\'esecuzione dell\'ultima azione triggerUrl\n[last_run_executable_exit_code] - Codice di uscita dell\'ultima azione eseguibile di esecuzione\n[last_run_executable_output] - L\'output dell\'ultima azione eseguibile eseguita (solo per i non root)\n[variable-VARIABLENAME] - Il valore della variabile definita in modo personalizzato</string>
|
||||
<string name="urlLegend">Variabili:\n È possibile utilizzare le seguenti variabili. Quando attivate, saranno sostituite con il valore corrispondente sul tuo dispositivo. Includi le parentesi nel tuo testo.\n\n[uniqueid] - L\'ID unico del tuo dispositivo\n[serialnr] - Il numero di serie del tuo dispositivio (< Android 9)\n[latitude] - La latitudine del tuo dispositivo\n[longitude] - La longitudine del tuo dispositivo\n[phonenr] - Numero dell\'ultima chiamata (entrante o uscente)\n[d] - Il giorno del mese, sempre 2 cifre con zero iniziale \n[m] - Mese in formato numerico, sempre 2 cifre con zero iniziale \n[Y] - L\’anno, sempre con 4 cifre\n[h] - Ore in formato 12 ore, sempre 2 cifre con due punti\n[H] - Ore in formato 24 ore, sempre 2 cifre con due punti\n[i] - Minuti, sempre 2 cifre\n[s] - Secondi, sempre 2 cifre\n[ms] - millisecondi, sempre 3 cifre\n[notificationTitle] - titolo dell\'ultima notifica\n[notificationText] - testo dell\'ultima notifica\n[last_triggerurl_result] - Risultato dell\'esecuzione dell\'ultima azione triggerUrl\n[last_run_executable_exit_code] - Codice di uscita dell\'ultima azione eseguibile di esecuzione\n[last_run_executable_output] - L\'output dell\'ultima azione eseguibile eseguita (solo per i non root)\n[last_calendar_title] - Titolo dell\'ultimo evento di calendario che ha attivato la regola\n[last_calendar_description] - Descrizione dell\'ultimo evento del calendario che ha attivato la regola\n[last_calendar_location] - Posizione dell\'ultimo evento del calendario che ha attivato la regola\n[variable-VARIABLENAME] - Il valore della variabile definita in modo personalizzato</string>
|
||||
<string name="urlToTrigger">URL da caricare:</string>
|
||||
<string name="urlTooShort">L\'url deve avere almeno 10 caratteri.</string>
|
||||
<string name="usbTetheringFailForAboveGingerbread">Questo molto probabilmente non funzionerà dato che sei su una versione superiore ad Android 2.3. Tuttavia è possibile utilizzare la connessione wifi tethering per attivare la regola.</string>
|
||||
@ -828,7 +828,6 @@
|
||||
<string name="calendarStringWorkingElsewhere">Lavorare altrove</string>
|
||||
<string name="selectingNoneItemForAllToMatch">Se non selezioni nessun elemento, tutti saranno ok.</string>
|
||||
<string name="calendars">Calendari</string>
|
||||
<string name="calendars">Calendari</string>
|
||||
<string name="calendarAvailabilityTypesUnsupported">È possibile che solo i primi 3 tipi funzionino effettivamente perché gli altri tipi non fanno parte dell\'interfaccia del calendario standard di Android.</string>
|
||||
<string name="anyCalendar">qualsiasi calendario</string>
|
||||
<string name="availabilities">Disponibilità</string>
|
||||
|
@ -64,7 +64,7 @@
|
||||
<string name="end">Einde</string>
|
||||
<string name="save">Opslaan</string>
|
||||
<string name="urlToTrigger">URL om te activeren:</string>
|
||||
<string name="urlLegend">Variabelen:U kunt de volgende variabelen gebruiken. Bij het triggeren zullen ze worden vervangen door de corresponderende waarde op je apparaat. Zet de haakjes in uw tekst. \n[uniqueid] - Het unieke id van uw apparaat[serialnr] - Het serienummer van uw apparaat (< Android 9)[latitude] - De breedtegraad van uw apparaat[longitude] - De lengtegraad van uw apparaat[phonenr] - Nummer van het laatste inkomende of uitgaande gesprek[d] - Dag van de maand, 2 cijfers met voorloopnullen[m] - Numerieke weergave van een maand, met voorloopnullen[Y] - een volledige numerieke weergave van een jaar, 4 cijfers[h] - 12-uurs indeling van een uur, met voorloopnullen[H] - 24-uurs indeling van een uur, met voorloopnullen[i] - minuten, met voorloopnullen[s] - seconden, met voorloopnullen[ms] - milliseconden[notificationTitle] - titel van de laatste melding[notificationText] - tekst van de laatste melding\n[last_triggerurl_result] - Het resultaat van de laatste uitvoering van de triggerUrl-actie\n[last_run_executable_exit_code] - De afsluitcode van de uitvoerbare actie van de laatste uitvoering\n[last_run_executable_output] - De uitvoer van de uitvoerbare actie van de laatste uitvoering (alleen voor niet-root)\n[variable-VARIABLENAME] - De waarde van uw aangepaste gedefinieerde variabele</string>
|
||||
<string name="urlLegend">Variabelen:U kunt de volgende variabelen gebruiken. Bij het triggeren zullen ze worden vervangen door de corresponderende waarde op je apparaat. Zet de haakjes in uw tekst. \n[uniqueid] - Het unieke id van uw apparaat[serialnr] - Het serienummer van uw apparaat (< Android 9)[latitude] - De breedtegraad van uw apparaat[longitude] - De lengtegraad van uw apparaat[phonenr] - Nummer van het laatste inkomende of uitgaande gesprek[d] - Dag van de maand, 2 cijfers met voorloopnullen[m] - Numerieke weergave van een maand, met voorloopnullen[Y] - een volledige numerieke weergave van een jaar, 4 cijfers[h] - 12-uurs indeling van een uur, met voorloopnullen[H] - 24-uurs indeling van een uur, met voorloopnullen[i] - minuten, met voorloopnullen[s] - seconden, met voorloopnullen[ms] - milliseconden[notificationTitle] - titel van de laatste melding[notificationText] - tekst van de laatste melding\n[last_triggerurl_result] - Het resultaat van de laatste uitvoering van de triggerUrl-actie\n[last_run_executable_exit_code] - De afsluitcode van de uitvoerbare actie van de laatste uitvoering\n[last_run_executable_output] - De uitvoer van de uitvoerbare actie van de laatste uitvoering (alleen voor niet-root)\n[last_calendar_title] - Titel van de laatste agenda-afspraak die regels activeert\n[last_calendar_description] - Beschrijving van de laatste agenda-gebeurtenis die regels activeert\n[last_calendar_location] - Locatie van de laatste agenda-gebeurtenis die de regel activeert\n[variable-VARIABLENAME] - De waarde van uw aangepaste gedefinieerde variabele</string>
|
||||
<string name="wifi">wifi</string>
|
||||
<string name="activating">Activeren</string>
|
||||
<string name="deactivating">Deactiveren</string>
|
||||
|
@ -70,7 +70,7 @@
|
||||
<string name="end">Koniec</string>
|
||||
<string name="save">Zapisz</string>
|
||||
<string name="urlToTrigger">Adres URL do uruchomienia:</string>
|
||||
<string name="urlLegend">Zmienne:\nMożesz użyć następujących zmiennych. Po uruchomieniu zostaną one zastąpione odpowiednią wartością na Twoim urządzeniu. Umieść nawiasy w tekście.\n\n[uniqueid] – unikalny identyfikator Twojego urządzenia\n[serialnr] – numer seryjny Twojego urządzenia (< Android 9)\n[latitude] – Twoje urządzenie\ szerokość geograficzna użytkownika\n[longitude] – długość geograficzna Twojego urządzenia\n[phonenr] – numer ostatniego połączenia przychodzącego lub wychodzącego\n[d] – dzień miesiąca, 2 cyfry z zerami na początku\n[m] – Numeryczna reprezentacja miesiąca z zerami na początku\n[Y] — pełna cyfrowa reprezentacja roku, 4 cyfry\n[h] — godzina w formacie 12-godzinnym z zerami na początku\n[H] — format 24-godzinny format godziny z wiodącymi zerami\n[i] - minuty z wiodącymi zerami\n[s] - sekundy z wiodącymi zerami\n[ms] - milisekundy\n[notificationTitle] - tytuł ostatniego powiadomienia\n[notificationText] - tekst ostatniego powiadomienia\n[last_triggerurl_result] - Wynik ostatniego wykonania akcji triggerUrl\n[last_run_executable_exit_code] - Kod zakończenia ostatniej uruchomionej akcji wykonywalnej\n[last_run_executable_output] - Dane wyjściowe ostatniej akcji wykonywalnej uruchomienia (tylko dla użytkowników innych niż root)\n[variable-VARIABLENAME] - Wartość niestandardowej zmiennej zdefiniowanej przez Ciebie</string>
|
||||
<string name="urlLegend">Zmienne:\nMożesz użyć następujących zmiennych. Po uruchomieniu zostaną one zastąpione odpowiednią wartością na Twoim urządzeniu. Umieść nawiasy w tekście.\n\n[uniqueid] – unikalny identyfikator Twojego urządzenia\n[serialnr] – numer seryjny Twojego urządzenia (< Android 9)\n[latitude] – Twoje urządzenie\ szerokość geograficzna użytkownika\n[longitude] – długość geograficzna Twojego urządzenia\n[phonenr] – numer ostatniego połączenia przychodzącego lub wychodzącego\n[d] – dzień miesiąca, 2 cyfry z zerami na początku\n[m] – Numeryczna reprezentacja miesiąca z zerami na początku\n[Y] — pełna cyfrowa reprezentacja roku, 4 cyfry\n[h] — godzina w formacie 12-godzinnym z zerami na początku\n[H] — format 24-godzinny format godziny z wiodącymi zerami\n[i] - minuty z wiodącymi zerami\n[s] - sekundy z wiodącymi zerami\n[ms] - milisekundy\n[notificationTitle] - tytuł ostatniego powiadomienia\n[notificationText] - tekst ostatniego powiadomienia\n[last_triggerurl_result] - Wynik ostatniego wykonania akcji triggerUrl\n[last_run_executable_exit_code] - Kod zakończenia ostatniej uruchomionej akcji wykonywalnej\n[last_run_executable_output] - Dane wyjściowe ostatniej akcji wykonywalnej uruchomienia (tylko dla użytkowników innych niż root)\n[last_calendar_title] - Tytuł ostatniego wydarzenia w kalendarzu wyzwalającego regułę\n[last_calendar_description] - opis ostatniego wydarzenia w kalendarzu wyzwalającego regułę\n[last_calendar_location] - Lokalizacja ostatniego zdarzenia w kalendarzu wyzwalającego regułę\n[variable-VARIABLENAME] - Wartość niestandardowej zmiennej zdefiniowanej przez Ciebie</string>
|
||||
<string name="wifi">wifi</string>
|
||||
<string name="activating">Aktywowanie</string>
|
||||
<string name="deactivating">Dezaktywowanie</string>
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="end">Конец</string>
|
||||
<string name="save">Сохранить</string>
|
||||
<string name="urlToTrigger">URL для вызова:</string>
|
||||
<string name="urlLegend">Переменные:\nВы можете использовать следующие переменные. При срабатывании они будут заменены соответствующим значением на вашем устройстве. Скобки- часть переменной.\n\n[uniqueid] - уникальный идентификатор\n[serialnr] - серийный номер(< Android 9)\n[latitude] - широта\n[longitude] - долгота\n[phonenr] - Номер последнего входящего или исходящего вызова\n[d] - День месяца, 2 цифры с начальными нулями\n[m] – Месяц, 2 цифры с начальными нулями\n[Y] - Год, 4 цифры\n[h] - 12-часовой формат часа с начальными нулями\n[H] - 24-часовой формат часа с начальными нулями\n[i] - Минуты с начальными нулями\n[s] - Секунды с начальными нулями\n[ms] - миллисекунды\n[notificationTitle] - заголовок последнего уведомления\n[notificationText] - текст последнего уведомления\n[last_triggerurl_result] - Результат последнего выполнения действия triggerUrl\n[last_run_executable_exit_code] - Код выхода последнего выполняемого действия\n[last_run_executable_output] - Выходные данные последнего выполняемого действия (только для некорневых пользователей)\n[variable-VARIABLENAME] - Значение переменной, определенной пользователем</string>
|
||||
<string name="urlLegend">Переменные:\nВы можете использовать следующие переменные. При срабатывании они будут заменены соответствующим значением на вашем устройстве. Скобки- часть переменной.\n\n[uniqueid] - уникальный идентификатор\n[serialnr] - серийный номер(< Android 9)\n[latitude] - широта\n[longitude] - долгота\n[phonenr] - Номер последнего входящего или исходящего вызова\n[d] - День месяца, 2 цифры с начальными нулями\n[m] – Месяц, 2 цифры с начальными нулями\n[Y] - Год, 4 цифры\n[h] - 12-часовой формат часа с начальными нулями\n[H] - 24-часовой формат часа с начальными нулями\n[i] - Минуты с начальными нулями\n[s] - Секунды с начальными нулями\n[ms] - миллисекунды\n[notificationTitle] - заголовок последнего уведомления\n[notificationText] - текст последнего уведомления\n[last_triggerurl_result] - Результат последнего выполнения действия triggerUrl\n[last_run_executable_exit_code] - Код выхода последнего выполняемого действия\n[last_run_executable_output] - Выходные данные последнего выполняемого действия (только для некорневых пользователей)\n[last_calendar_title] - Заголовок последнего календарного события, запускающего правило\n[last_calendar_description] - Описание последнего события календаря, активировавшего правило\n[last_calendar_location] - Местоположение последнего календарного события, запускающего правило\n[variable-VARIABLENAME] - Значение переменной, определенной пользователем</string>
|
||||
<string name="wifi">Wi-Fi</string>
|
||||
<string name="activating">Активация</string>
|
||||
<string name="deactivating">Деактивация</string>
|
||||
|
@ -823,8 +823,6 @@
|
||||
<string name="calendarStringFree">自由</string>
|
||||
<string name="calendarStringTentative">尝试</string>
|
||||
<string name="calendarStringOutOfOffice">不在办公室</string>
|
||||
<string name="calendarStringOutOfOffice">不在办公室</string>
|
||||
<string name="calendarStringOutOfOffice">不在办公室</string>
|
||||
<string name="calendarStringWorkingElsewhere">在其他地方工作</string>
|
||||
<string name="selectingNoneItemForAllToMatch">如果您不选择任何项目,则任何一个都可以。</string>
|
||||
<string name="calendars">日历</string>
|
||||
@ -832,7 +830,6 @@
|
||||
<string name="anyCalendar">任何日历</string>
|
||||
<string name="availabilities">可用性</string>
|
||||
<string name="calendarsMissingHint">在此触发器中,以前已配置了 ID 为 %1$s 的日历,但此后已被删除。在下次保存时,这些将从此触发器中删除。在此之前,此触发器/条件将永远不会得到满足。</string>
|
||||
<string name="account">account</string>
|
||||
<string name="account">帐户</string>
|
||||
<string name="allDayEvent">全天活动</string>
|
||||
<string name="allDayEventTrue">活动是全天活动</string>
|
||||
|
@ -70,7 +70,7 @@
|
||||
<string name="end">End</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="urlToTrigger">URL to trigger:</string>
|
||||
<string name="urlLegend">Variables:\nYou can use the following variables. Upon triggering they will be replaced with the corresponding value on your device. Include the brackets in your text.\n\n[uniqueid] - Your device\'s unique id\n[serialnr] - Your device\'s serial number (< Android 9)\n[latitude] - Your device\'s latitude\n[longitude] - Your device\'s longitude\n[phonenr] - Number of last incoming or outgoing call\n[d] - Day of the month, 2 digits with leading zeros\n[m] - Numeric representation of a month, with leading zeros\n[Y] - A full numeric representation of a year, 4 digits\n[h] - 12-hour format of an hour with leading zeros\n[H] - 24-hour format of an hour with leading zeros\n[i] - Minutes with leading zeros\n[s] - Seconds, with leading zeros\n[ms] - milliseconds\n[notificationTitle] - title of last notification\n[notificationText] - text of last notification\n[last_triggerurl_result] - The result of the last triggerUrl action execution\n[last_run_executable_exit_code] - The exit code of the last run executable action\n[last_run_executable_output] - The output of the last run executable action (only for non-root)\n[variable-VARIABLENAME] - The value of your custom defined variable</string>
|
||||
<string name="urlLegend">Variables:\nYou can use the following variables. Upon triggering they will be replaced with the corresponding value on your device. Include the brackets in your text.\n\n[uniqueid] - Your device\'s unique id\n[serialnr] - Your device\'s serial number (< Android 9)\n[latitude] - Your device\'s latitude\n[longitude] - Your device\'s longitude\n[phonenr] - Number of last incoming or outgoing call\n[d] - Day of the month, 2 digits with leading zeros\n[m] - Numeric representation of a month, with leading zeros\n[Y] - A full numeric representation of a year, 4 digits\n[h] - 12-hour format of an hour with leading zeros\n[H] - 24-hour format of an hour with leading zeros\n[i] - Minutes with leading zeros\n[s] - Seconds, with leading zeros\n[ms] - milliseconds\n[notificationTitle] - title of last notification\n[notificationText] - text of last notification\n[last_triggerurl_result] - The result of the last triggerUrl action execution\n[last_run_executable_exit_code] - The exit code of the last run executable action\n[last_run_executable_output] - The output of the last run executable action (only for non-root)\n[last_calendar_title] - Title of the last rule-triggering calendar event\n[last_calendar_description] - Description of the last rule-triggering calendar event\n[last_calendar_location] - Location of the last rule-triggering calendar event\n[variable-VARIABLENAME] - The value of your custom defined variable</string>
|
||||
<string name="wifi">wifi</string>
|
||||
<string name="activating">Activating</string>
|
||||
<string name="deactivating">Deactivating</string>
|
||||
|
@ -15,14 +15,22 @@ Mögliche Auslöser:
|
||||
* Flugzeugmodus
|
||||
* Roaming aktiv oder nicht
|
||||
* NFC tags
|
||||
************** Aktivitätserkennung (nicht in F-Droid Version)
|
||||
* Bluetooth Gerät verbunden
|
||||
* Headset verbunden
|
||||
* Telefongespräch im Gange
|
||||
* Benachrichtigungen anderer Anwendungen
|
||||
* Geräteausrichtung (Gyroskop)
|
||||
* Profile aktiv oder nicht
|
||||
************ Bildschirmzustand (aus-/eingeschaltet)
|
||||
************ Musikwiedergabestatus
|
||||
************ Gerät startet
|
||||
************ Dienst startet
|
||||
* Broadcasts anderer Anwendungen
|
||||
************ Router-Zustand
|
||||
************ Zustände (Bluetooth/WLAN aus oder an)
|
||||
* Variablen, die gesetzt wurden
|
||||
*********** Kalendertermine
|
||||
* Telefongespräch im Gange
|
||||
|
||||
Mögliche Aktionen:
|
||||
* WLAN ein-/ausschalten
|
||||
@ -37,15 +45,25 @@ Mögliche Aktionen:
|
||||
* Warten (zwischen anderen Aktionen)
|
||||
* Bildschirm ein-/ausschalten
|
||||
* Flugzeugmodus ein-/ausschalten
|
||||
* Datenverbindung ein-/ausschalten
|
||||
* Mobile Daten ein-/ausschalten
|
||||
* Text sprechen (TTS)
|
||||
* Musikplayer öffnen
|
||||
********** Medienwiedergabe steuern
|
||||
* Bildschirmhelligkeit ändern
|
||||
* SMS verschicken
|
||||
* Sounddatei abspielen.
|
||||
* Sounddatei abspielen
|
||||
******** Vibrieren
|
||||
* Benachrichtigungen erstellen
|
||||
******* Benachrichtigungen schließen
|
||||
******* Broadcast verschicken
|
||||
******** Script/Befehl ausführen
|
||||
******* Bildschirm aktiv halten
|
||||
* Variablen setzen
|
||||
* Telefonanrufe starten
|
||||
**********Telefonanrufe beenden
|
||||
********** Text in Zwischenablage kopieren
|
||||
********* Screenshot erstellen
|
||||
********* GPS Einstellungen setzen
|
||||
* 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.
|
||||
Wenn also eine bestimmte Funktion nicht so tut wie sie sollte - lassen Sie es mich wissen. Über die Jahre habe ich noch alle Fehler behoben, die mir vernünftig gemeldet wurden. Aber dafür bin ich auf Ihre Mithilfe angewiesen.
|
||||
|
@ -8,21 +8,29 @@ Supported triggers:
|
||||
* Charging state
|
||||
* Battery level
|
||||
* USB connection to computer established
|
||||
* Your current speed
|
||||
* Current speed
|
||||
* Background noise (only until Android 7)
|
||||
* Wifi connection
|
||||
* Other applications running
|
||||
* Airplane mode
|
||||
* Roaming status
|
||||
* NFC tags
|
||||
* Activity detection (not in F-Droid version)
|
||||
* Bluetooth connection
|
||||
* Headset connected
|
||||
* Phone call running
|
||||
* Notifications of other apps
|
||||
* Device orientation (gyroscope)
|
||||
* Profile active or not
|
||||
* Screen state (on or off)
|
||||
* Status of media playback
|
||||
* Device is starting
|
||||
* Service is starting
|
||||
* Broadcasts of other apps
|
||||
* Router state
|
||||
* System states (Bluetooth/wifi)
|
||||
* Variables that have been set
|
||||
* Calendar appointments
|
||||
* Phone call running
|
||||
|
||||
Supported actions:
|
||||
* Change wifi state
|
||||
@ -40,12 +48,21 @@ Supported actions:
|
||||
* Toggle mobile data connection
|
||||
* Speak text
|
||||
* Open music player
|
||||
* Control media playback
|
||||
* Change screen brightness
|
||||
* Send text message
|
||||
* Play sound file
|
||||
* Create notifications
|
||||
* Close notifications
|
||||
* Send broadcasts
|
||||
* Run script/command
|
||||
* Maintain screen active
|
||||
* Set variables
|
||||
* Initiate phone calls
|
||||
* Terminate phone calls
|
||||
* Copy text to clipboard
|
||||
* Make screenshot
|
||||
* Change location setting
|
||||
* Send text message
|
||||
|
||||
It's quite hard to keep this app working across the many different hardwares as well as the many changes Android undergoes over the versions. I can test it in the emulator, but that cannot show all bugs.
|
||||
So if a certain feature is not working on your device - let me know. Over the years I have fixed almost all bugs that have been reasonably reported to me. But for that I'm dependend on your input.
|
||||
|
@ -15,14 +15,22 @@ Disparadores:
|
||||
* Modo de vuelo
|
||||
* Estado de roaming
|
||||
* NFC tags
|
||||
* Detection de actividad (no en la versión F-Droid)
|
||||
* Bluetooth conexión
|
||||
* Headset conectado
|
||||
* Llamado de teléfono activo
|
||||
* Notificaciónes de otras apps
|
||||
* Orientación del dispositivo (giroscopio)
|
||||
* Perfil activado o no
|
||||
* Estado de la pantalla
|
||||
* Estado de la reprodución de audio
|
||||
* Dispositivo está enciendo
|
||||
* Servicio está enciendo
|
||||
* Broadcasts de otras apps
|
||||
* Estado del router
|
||||
* Estados (Bluetooth/Wifi)
|
||||
* Variables que se han establecido
|
||||
* Citas en el calendar
|
||||
* Llamado de teléfono activo
|
||||
|
||||
Aciónes:
|
||||
* Pasar de wifi
|
||||
@ -40,12 +48,22 @@ Aciónes:
|
||||
* Pasar datos móviles
|
||||
* Leer texto
|
||||
* Abrir reproductor de música
|
||||
* Cambiar luminosidad del monitor
|
||||
* Enviar mensaje
|
||||
* Tocar archivo sonido
|
||||
* Controllar reproducion de música
|
||||
* Cambiar luminosidad de la pantalla
|
||||
* Reproducir audio
|
||||
* Vibrar
|
||||
* Crear notificaciones
|
||||
* Cerrar notificationes
|
||||
* Enviar broadcast
|
||||
* Ejecutar script/programa
|
||||
* Mantener pantalla encendido
|
||||
* Establecer variables
|
||||
* Iniciar llamadas telefónicas
|
||||
* Terminar llamadas telefónicas
|
||||
* Copiar texto al portapapeles
|
||||
* Hacer screenshot
|
||||
* Cambiar ajustes de localización
|
||||
* Enviar mensaje
|
||||
|
||||
Es muy dificil mantener esta applicación functionando en todos los hardwares y versiónes de Android. Puedo probrar mucho en el emulator, pero no puedo enviar todos los errores.
|
||||
Si una función no funcióna - digame. En muchos años resolvaba la mayoria de los errores que los halladores me informaron bien. Pero dependo en su ayuda.
|
||||
|
Loading…
Reference in New Issue
Block a user