记一次简单的Launcher实现

一,manifest修改,注意intent-filter标签内的内容,这一步重点是修改此标签

      <activity
            android:name=".MainActivity"
            android:label="@string/app_name" 
            android:theme="@style/theme"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>

二,获取所有已安装的App,得到一个存有APP信息的集合apps

Intent intent = new Intent(Intent.ACTION_MAIN,null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
apps = getPackageManager().queryIntentActivities(intent, 0);

三,获取点击的app的信息(包名,类名),并打开点击的应用

    private void startIntent(int position){
		ResolveInfo info = apps.get(position);
		String packageName = info.activityInfo.applicationInfo.packageName;
		String className = info.activityInfo.applicationInfo.name;
		Log.d(TAG, "packageName="+packageName+"--/--className="+className);
		ComponentName component = new ComponentName(packageName,className);
		Intent intent = new Intent();
		intent.setComponent(component);
		startActivity(intent);
	}

四,附加,设置桌面背景

    private void setWallPaper(){
		Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
		Intent chooser = Intent.createChooser(intent, "choose_WallPaper");
		startActivity(chooser);
	}

猜你喜欢

转载自blog.csdn.net/qq_35924482/article/details/81389917