1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

HTC Sense: Keine Toast-Nachrichten bei eingehendem Anruf?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Gecko0815, 22.07.2011.

  1. Gecko0815, 22.07.2011 #1
    Gecko0815

    Gecko0815 Threadstarter Neuer Benutzer

    Beiträge:
    16
    Erhaltene Danke:
    0
    Registriert seit:
    17.08.2010
    Hallo!

    Ich habe eine (selbstgeschriebene) Applikation, die bei einem eingehenden Anruf die Telefonnummer mit Daten einer Datenbank (am Gerät) vergleicht und bei Übereinstimmung die Anruferdaten mittels einer Toast-Nachricht über dem Anrufer-Bildschirm anzeigt. Das klappt bei den meisten Geräten (Desire Z, Desire S, Galaxy Tab, ...) auch hervorragend, doch bei zwei neuen HTC-Geräten (Sensation, ChaCha) gibt es Probleme bei der Anzeige, wenn das Gerät gesperrt (also im Standby-Modus) ist. Beim Anruf erscheint nichts, erst nach Auflegen erscheint die Toast-Meldung und geht dann nicht mehr weg. Was mir beim Sensation allerdings aufgefallen ist: Der Anruferbildschirm sieht anders aus, je nachdem ob das sich beim Anruf im Standby-Modus befindet oder gerade verwendet wird.

    Meine Fragen: Sind das zwei unterschiedliche Telefon-Applikationen auf dem Gerät? Wie kann ich das Problem umgehen und die Toast-Nachricht doch noch anzeigen lassen?

    Hier der Code-Ausschnitt aus der Klasse TeleListener, die PhoneStateListener erweitert und der die Anruferdaten anzeigt:

    Code:
    LayoutInflater inflater = getLayoutInflater();
    View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root));
    
    TextView text = (TextView) layout.findViewById(R.id.text);
    text.setText(infoText.toString()); // Der Text wird weiter vorne im Code zusammengestellt
                
    Toast toast = new Toast(List.this);
    toast.setDuration(Toast.LENGTH_LONG);
    toast.setView(layout);
    final Toast toast2 = toast; 
                
    Thread t = new Thread() {
         public void run() {
              try {
                   while (true) {
                        if (!phoneIsRinging) {
                             toast2.cancel();
                             break;
                        }
    
                        toast2.show();
                        sleep(1850);
                   }
              } catch (Exception e) {
                   Log.i(TAG, "Error while showing caller identification: " + e.toString());
              }
         }
    };
    t.start();
    
    Ich bedanke mich vielmals für Eure Hilfe und hoffe, ich habe alles ausreichend deutlich beschrieben!
    Mit freundlichen Grüßen,
    Gecko0815
     
  2. DieGoldeneMitte, 22.07.2011 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Toast über Handler starten?
     

Diese Seite empfehlen