Frage

Ich versuche, eine Desktop-Verknüpfung zu einem meiner Tätigkeit in Android zu erstellen. Ich verwende den Code, dass die Arbeit in jedem tuto Beispiel i gelesen hat:

    final Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
    ComponentName name = new ComponentName(getPackageName(), ".MyActivity");
    shortcutIntent.setComponent(name);

    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


    final Intent intent = new Intent();
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);

    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "blabla");
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);

    intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
    sendBroadcast(intent);
    finish();

Und ich hinzugefügt, um die Hauptsache meiner Tätigkeit:

    <activity android:label="@string/app_name" android:name=".MyActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
        </intent-filter>
    </activity>

Das Ergebnis ist, dass die Anwendung nicht will, zu starten!

In der Logcat alles scheint in Ordnung:

10-01 01:17:51.591: INFO/ActivityManager(2424): Starting activity: Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=my.package.name/.MyActivity bnds=[125,384][235,522] (has extras) }

Und das Haus mir sagen, dass die Anwendung nicht installiert ist.

Bitte helfen Sie mir, ich bin total verloren und verbringen Sie ein paar Stunden mit dem Versuch, das Problem zu lösen und alle Infos lesen die ich bekommen kann.

Danke viel!

War es hilfreich?

Lösung

Versuchen Sie diese:

  1. Sie sich von der <intent-filter> befreien
  2. Sie sich von der ACTION_MAIN los und verwenden nur new Intent(this, MyActivity.class)
  3. hinzufügen android: exportiert = "true" zu Ihrem Element im Manifest

Andere Tipps

Dies kann passieren, wenn Sie Ihre Aktivität haben erklärt zweimal in AndroidManifest.xml, zunächst als Trägerrakete und dann nur erklärt wie:

<activity android:name=".MyActivity" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top