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

Broadcast Receiver

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von egon232, 29.09.2010.

  1. egon232, 29.09.2010 #1
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    Hi,

    hab ein Problem mit dem Braodcast Receiver.
    Ich will dass der Receiver mitbekommt, wenn eine Anwendung gestartet wird.

    Manifest:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="de.test.receiver" android:versionCode="1" android:versionName="1.0">
        <application android:icon="@drawable/icon">
            <activity android:name=".receiveactivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <receiver android:name=".myIntentReceiver">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                </intent-filter>
            </receiver>
        </application>
    </manifest> 
    
    receiveactivity class:
    Code:
    package de.test.receiver;
    
    import de.test.receiver.R;
    import android.app.Activity;
    import android.os.Bundle;
    
    public class receiveactivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //Intent test = new Intent();
            //startService();
            setContentView(R.layout.main);
        }
    }
    
    myIntentReceiver
    Code:
    package de.test.receiver;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.util.Log;
    
    public class myIntentReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.v("11111", "yes");
        }
    }
    
    das Programm reagiert einfach nicht darauf, wenn eine Anwendung gestartet wird.

    Was mach ich falsch?

    Grüße
     
  2. ko5tik, 29.09.2010 #2
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Probier doch mal zum Broadcast-Receiver hinzuzufügen:
    <category android:name="android.intent.category.LAUNCHER" />
     
  3. egon232, 29.09.2010 #3
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    ändert leider auch nichts, aber danke.

    LogCat auszug beim Start einer App:

    Code:
    09-29 14:20:45.777: INFO/ActivityManager(194): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.mms/.ui.ConversationList bnds=[185,430][245,480] }
    
    Grüße
     
  4. ko5tik, 29.09.2010 #4
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Es kann gut sein, das es nicht gebroadcastet wird - nur an die Activity von Launcher übergeben

    Was hiindert dich eigentlich daran, den BroadcastReceiver von onCreate() / onResume()
    zu starten? (da kannst du problemlos einen richtigen Intent feuern )
     
  5. egon232, 29.09.2010 #5
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    Naja ich will allgemein mitbekommen, wenn eine app gestartet wird.
    Will bei bestimmten Apps eine Aktion ausführen.
    Also nicht speziell bei den Apps, die ich erstellt habe, beim onCreate n Intent rausballern.
     
  6. ko5tik, 29.09.2010 #6
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Frage ist, ob so ein Intent von dem Launcher überhaupt gebroadcast wird
    ( am Besten du schaust in der Quellkode nach )
     
  7. egon232, 29.09.2010 #7
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
  8. ko5tik, 29.09.2010 #8
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    ... wenn CommonsGuy das sagt, hast du schlechte Chancen ;)
     
    egon232 bedankt sich.
  9. egon232, 29.09.2010 #9
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    hehe ;)
    Dank dir trotzdem.

    Wenn jemand dazu noch n lösungsweg einfällt, kann ers/sies^^ gerne sagen

    Grüße
     
  10. ko5tik, 29.09.2010 #10
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero

    ... wenn du eine davon nennen kannst (die ohne root funktioniert)
    Könnten wir mal da reingucken
     
  11. egon232, 29.09.2010 #11
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    App-Beschützer (pro) z.b.
     
  12. BenOtto, 30.09.2010 #12
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Beiträge:
    141
    Erhaltene Danke:
    15
    Registriert seit:
    30.08.2010
    Eigentlich würde ich von diesem Intent ausgehen:
    android.intent.action.PACKAGE_RESTARTED
    In der Dokumentation steht:
    "Broadcast Action: The user has restarted a package, and all of its processes have been killed. All runtime state associated with it (processes, alarms, notifications, etc) should be removed. Note that the restarted package does not receive this broadcast. The data contains the name of the package.
    EXTRA_UID containing the integer uid assigned to the package.
    This is a protected intent that can only be sent by the system."

    Hab's mal probiert, aber konnte ihn nicht empfangen.
     
  13. egon232, 30.09.2010 #13
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    kann des irgendwie sein, dass mir ne permission fehlt oder so?

    Weil wenn ich das folgende ins Manifest eintrag und den Call-Button drück, reagiert die anwendung auch nicht drauf:

    Code:
            <receiver android:name=".myIntentReceiver">
                <intent-filter>
                    <action android:name="android.intent.action.CALL_BUTTON"/>
                </intent-filter>
            </receiver>
    
     
  14. Fr4gg0r, 30.09.2010 #14
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Package restarted wird wohl eher aufgerufen, wenn eine app geupdated wird.
     
  15. BenOtto, 30.09.2010 #15
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Beiträge:
    141
    Erhaltene Danke:
    15
    Registriert seit:
    30.08.2010
    Und wofür ist dann
    android.intent.action.PACKAGE_REPLACED
     
  16. Fr4gg0r, 30.09.2010 #16
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    werden nacheinander aufgerufen :p

    Es steht ja wohl fest, dass
    das
    nicht zutrifft. ;)
     
  17. egon232, 30.09.2010 #17
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    @Fr4gg0r weist du vllt, wie ich mitbekomm, wenn eine App gestartet wird?
     
  18. Fr4gg0r, 30.09.2010 #18
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Nein, ich gehe auch davon aus, dass es nicht möglich ist.
    Stell dir vor, du installierst eine App im Market, die nicht im Launcher auftaucht, aber immer mit anderen Apps mitstartet und irgendwelchen Blödsinn macht. ;)

    Man könnte es über Homescreenshortcuts faken z.B.

    Ich hab jetzt ne Vermutung wie die App funktioniert..
     
    Zuletzt bearbeitet: 30.09.2010
  19. egon232, 30.09.2010 #19
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    Ahja und wie? :)
     
  20. Fr4gg0r, 30.09.2010 #20
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    schau dir sein manifest an, schau dir sein code an ;)
     

Diese Seite empfehlen