Wie man einen Launcher macht

71

Ich habe mich schon eine ganze Weile entwickelt und versuche jetzt, eine App zu entwickeln, die das ursprüngliche Zuhause ersetzt (z. B. HTC Sense).

Ich muss die App öffnen, wenn der Benutzer die Home-Taste auf seinem Telefon drückt.

Im Grunde ist es also ein Ersatz für zu Hause.

Weiß jemand, wie man das macht?

IntelSoftApps
quelle
Sie können den Quellcode des Launcher und des in Android verwendeten Launcher2- Projekts auschecken.
Octavian A. Damiean
Hier ist der Quellcode von Launcher3(dem AOSP-Launcher), der in KitKat (und wahrscheinlich auch in Lollipop) verwendet wird: android.googlesource.com/platform/packages/apps/Launcher3/+/… Wenn Sie einen neuen Launcher von AOSP sehen, ersetzen Sie ihn einfach 3im URL mit der neueren Version.
Sazid

Antworten:

96

Entwickeln Sie einfach eine normale App und fügen Sie der Manifestdatei der App einige Zeilen hinzu.

Zuerst müssen Sie Ihrer Aktivität das folgende Attribut hinzufügen:

            android:launchMode="singleTask"

Fügen Sie dann dem Absichtsfilter zwei Kategorien hinzu:

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.HOME" />

Das Ergebnis könnte ungefähr so ​​aussehen:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.dummy.app"
        android:versionCode="1"
        android:versionName="1.0" >

        <uses-sdk
            android:minSdkVersion="11"
            android:targetSdkVersion="19" />

        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.dummy.app.MainActivity"
                android:launchMode="singleTask"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.HOME" />
                </intent-filter>
            </activity>
        </application>

    </manifest>

So einfach ist das!

Chris
quelle
Wie funktioniert der Lebenszyklus seiner Aktivität? Läuft es nur auf unbestimmte Zeit?
John Sardinha
15

Dies sind Beispiele, die vom Android-Team bereitgestellt wurden. Wenn Sie bereits Beispiele geladen haben, können Sie das Beispiel für den Ersatz des Startbildschirms importieren, indem Sie die folgenden Schritte ausführen.

Datei> Neu> Andere> Android> Android-Beispielprojekt> Android xx> Start> Fertig stellen

Wenn Sie jedoch keine Beispiele geladen haben, laden Sie sie mit den folgenden Schritten herunter

Windows> Android SDK Manager> wählt "Beispiel für SDK" für das SDK, das Sie benötigen> Paket installieren> Lizenz akzeptieren> Installieren

devqmr
quelle