Broadcast Receiver

E

egon232

Ambitioniertes Mitglied
1
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
 
Probier doch mal zum Broadcast-Receiver hinzuzufügen:
<category android:name="android.intent.category.LAUNCHER" />
 
ä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
 
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 )
 
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.
 
Frage ist, ob so ein Intent von dem Launcher überhaupt gebroadcast wird
( am Besten du schaust in der Quellkode nach )
 
... wenn CommonsGuy das sagt, hast du schlechte Chancen ;)
 
  • Danke
Reaktionen: egon232
hehe ;)
Dank dir trotzdem.

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

Grüße
 
egon232 schrieb:
Also, dass man vor dem Start bestimmter Apps ein Pw eingeben muss


... wenn du eine davon nennen kannst (die ohne root funktioniert)
Könnten wir mal da reingucken
 
App-Beschützer (pro) z.b.
 
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.
 
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>
 
Package restarted wird wohl eher aufgerufen, wenn eine app geupdated wird.
 
Und wofür ist dann
android.intent.action.PACKAGE_REPLACED
 
werden nacheinander aufgerufen :p

Es steht ja wohl fest, dass
das
all of its processes have been killed. All runtime state associated with it (processes, alarms, notifications, etc) should be removed.
nicht zutrifft. ;)
 
@Fr4gg0r weist du vllt, wie ich mitbekomm, wenn eine App gestartet wird?
 
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:
Ahja und wie? :)
 
schau dir sein manifest an, schau dir sein code an ;)
 

Ähnliche Themen

J
Antworten
2
Aufrufe
1.050
JonasSchmietzer
J
znieh99
Antworten
9
Aufrufe
1.153
znieh99
znieh99
N
  • N3cron
Antworten
10
Aufrufe
997
N3cron
N
Zurück
Oben Unten