Android实现简单Launcher的代码示例

创建一个APK实现Launcher的功能,首先需要在应用对应AndroidManifest.xml中添加相应的信息,
如下所示:


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="stark.a.is.zhang.nerdlauncher">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".NerdLauncherActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>

                <!--主要是增加home和default对应的category -->
                <category android:name="android.intent.category.HOME"/>

                
                <category android:name="android.intent.category.DEFAULT"/>
            intent-filter>
        activity>
    application>

manifest>

如上代码所示,在应用的主Activity中,增加home和default对应的category;
同时在系统设置中,设置该应用为默认启动器,那么该应用就可以取代系统默认的Launcher。


利用Android获取设备上全部应用名称及图片的示例 中的方法,
解析出其它应用的主Activity信息后,就可以在创建的Launcher中,按下列方法启动其它应用:

@Override
public void onClick(View v) {
    ActivityInfo activityInfo = mResolveInfo.activityInfo;

    Intent i = new Intent(Intent.ACTION_MAIN)
            //指定应用的包名和类名,显示启动其它应用的主Activity
           .setClassName(activityInfo.applicationInfo.packageName, activityInfo.name)
           //指定新启动的应用,在一个新的Task中
           .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

    startActivity(i);
}

你可能感兴趣的:(Android开发)