Eigene App in den Vordergrund holen

C

cqp

Neues Mitglied
0
Hi,

meine App hört alle Benachrichtungen ab und wenn von einer bestimmten App eine Benachrichtigung kommt, vibriert das Smartphone und spielt eine mp3 ab.
Das funktioniert soweit super. Um das vibrieren und den sound zu stoppen gibt es in meiner App einen Button.
Jetzt ist folgendes etwas umständlich:
Das Smartphone ist nicht in Gebrauch und in der Hosentasche, jetzt kommt eine Benachrichtigung von der besagten App, das Ding vibriert und klingelt.

1. Ich hole es raus und gebe mein Passwort ein um es zu entsperren
2. Sofern noch eine andere App offen gewesen ist, muss ich auf den Home Button klicken
3. Dann muss ich swipen bis ich auf der Seite bin wo meine App ist
4. Ich öffne meine App und kann (endlich) auf den Button klicken, sodass erst jetzt das vibrieren und klingeln aufhört

Ich würde gerne Punkt 2 und 3 auslassen! Bedeutet, das Ding vibriert und klingelt und wenn ich dann mein Passwort eingegeben habe, soll meine App im Vordergrund sein!
Allerdings weiß ich nicht wie das anstellen soll!?

Dann habe ich noch überlegt, es so wie whats-App zu lösen, dass ein Fenster "über" dem Passwort liegt und ich es dort beenden kann.
Aber da könnte das Problem sein, wenn man in der Tasche oder sonstwie direkt an den Button kommen könnte und somit die Vibration und der Ton schnell aufhört bevor man es wirklich wahrgenommen hat.
Aber das könnte ich ja ausprobieren. Oder es auch mit einem swipen ösen wie man einen Anruf entgegen nimmt.
Wie würde das gehen?

Ich hoffe man versteht was ich meine?

Danke und Gruß
 
Keiner eine Idee was ich da nehmen könnte?
 
Punkt 2 und 3 könntest du auslassen, in dem du mit einem Service ein Alert Window (oder auch Floating Window) erzeugst und das nach dem Button klick wieder verschwinden lässt.
Die App kannst du nicht als Activity sofort nach dem Entsperren starten, das würde 5 sec dauern (Sicherheitslösung unter Android .. aber war das nicht erst ab 4.4?).
 
Moin,

folgendes würde Funktionieren:

Androidmanifest:

<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />

Code:
ActivityManager activityManager = (ActivityManager)acTop.getSystemService(Context.ACTIVITY_SERVICE);

activityManager.moveTaskToFront(android.os.Process.myPid() ,ActivityManager.MOVE_TASK_WITH_HOME)

Gruß
lenny
 
AcTop ist die Activity die er dann anzeigen soll oder?
Aber was macht Context.AC TIVITY_SERVICE? Da schmeißt er auch nen Fehler.
 
Deine Aussagen sind ziemlich nichtssagend. Wie wär's mit nem log?

Ich hoffe du weißt, dass dir hier niemand den kompletten Code vorbetet? ;)
 
Ja acTop ist die AAktivitäten die angezeigt werden soll.
was für eine Fehlermeldung wird denn angezeigt?

vlt. Ist es auch nur leerzeichen zwischen contra. Ac tivity. _Service.
Wie in deinem Post. Das gehört da nicht hin.
 
Zuletzt bearbeitet von einem Moderator:
Ja Das leerzeichen war natürlich falsch, aber trotzdem: "Cannot make a static reference to the non-static method getSystemService(String) from the type Activity"

Vorbeten ist mir klar, aber bissl Hilfe brauch ich noch...
Der Code für die manifest ist klar. Dann muss ich mir eine neue Activity bauen und eine neue View für das Popup, soweit richtig?

Den Code den Lenny dann angegeben hat, muss ja dann aufgerufen werden, wenn der "Alarm" los geht, richtig? Also in meinen NotificationReciever.

Oder habe ich da was falsch verstanden?

EDIT: Ich habe auch schon versucht anhand dieser App mich durch den Code zuhangeln was ich brauche und was nicht, aber da steige ich auch nicht durch... https://play.google.com/store/apps/details?id=org.tpmkranz.notifyme
Genau das will ich ja machen!
 
Die Fehlermeldung sagt es doch.
Ich denke deine Activity Variable ist static und deine Methode nicht.

Beispiel:

Code:
public class ShowNotificationDialog extends Activity 
{
  public static final int REQUESTCODE = 0415;
  public static Context con;
  public static Activity ac;

  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.show_notification_dialog);
    con = this;
    ac = this;

    //TODO init Activity
  }//end onCreate()

  
  public static void showDialogInFront()
  {
    ActivityManager activityManager = (ActivityManager)ac.getSystemService(Context.AC TIVITY_SERVICE);

activityManager.moveTaskToFront(android.os.Process.myPid() ,ActivityManager.MOVE_TASK_WITH_HOME);
  }//End showDialogInFront
}//end class


In der Klasse in der du die Mitteilung abfängst (wie auch immer das Implementiert ist) kann man das folgendermaßen machen:

Code:
if(notificatioReceived)
{
  startActivity(new Intent(con, ShowNotificationDialog.class), ShowNotificationDialog.REQUESTCODE);
}//end if
 
Hay
Habe einen Task.
+ >send intent > meine Aktion
Einen service einer app.
In Aktion habe den selben Text vom service class und den bei package habe ich Android packet Namen.
So das wird beim ausführen des Tasks minimiert gestartet. Und wenn ich es gestartet habe muss ich eine beliebige app starten und wieder schließen. Das ist es minimiert da.
Wie kann ich im Task beim send intent drin Action programmieren das im befehl maximiert wird.
 

Ähnliche Themen

FabianDev
Antworten
5
Aufrufe
580
swa00
swa00
F
  • Fischi84
Antworten
2
Aufrufe
1.924
Fischi84
F
R
Antworten
3
Aufrufe
1.666
Ritartet
R
Zurück
Oben Unten