日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android icon hide,Android Launcher隐藏指定应用的启动图标

發布時間:2024/3/24 Android 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android icon hide,Android Launcher隐藏指定应用的启动图标 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們常常在工作中遇到這樣一個需求,要在Launcher中隱藏某個應用的啟動圖標(如預裝的輸入法、動態壁紙等等)。完成這個需求,首先要了解Launcher加載應用啟動圖標的過程。以Android4.4為例,Launcher3加載應用圖標在LauncherModel.java中完成,來看LauncherModel.java中loadAllApps()方法的一段代碼:

final PackageManager packageManager = mContext.getPackageManager();

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);

mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

// Clear the list of apps

mBgAllAppsList.clear();

// Query for the set of apps

final long qiaTime = DEBUG_LOADERS ? SystemClock.uptimeMillis() : 0;

List apps = packageManager.queryIntentActivities(mainIntent, 0);

......//省略無關代碼

// Create the ApplicationInfos

for (int i = 0; i < apps.size(); i++) {

ResolveInfo app = apps.get(i);

// This builds the icon bitmaps.

mBgAllAppsList.add(new AppInfo(packageManager, app,

mIconCache, mLabelCache));

}

這樣一看清晰了吧。根據以上代碼,我們知道Launcher是通過指定的Intent,更確切的說是intent-filter來加載應用圖標的,所以我們可以這樣來隱藏圖標:

1、有源代碼的應用程序,直接修改AndroidManifest.xml文件,刪掉所有Activity中intent-filter的

2、沒有源代碼的應用,修改loadAllApps()方法:

//數組array_hide_app_icon中是所有需要隱藏圖標的應用的包名和類名。

//例如隱藏撥號:com.android.dialer/.DialtactsActivity

String[] hideAppIconArray = mContext.getResources().getStringArray(R.array.array_hide_app_icon);

// Create the ApplicationInfos

for (int i = 0; i < apps.size(); i++) {

ResolveInfo app = apps.get(i);

//過濾掉需要隱藏的應用

StringBuilder sb = new StringBuilder();

ComponentName componentName = getComponentNameFromResolveInfo(app);

String shortClassName = componentName.getShortClassName();

String packageName = componentName.getPackageName();

String shortComponentName = sb.append(packageName).append('/')

.append(shortClassName).toString();

boolean needHide = false;

for (String str : hideAppIconArray ){

if (str != null && str.equals(shortComponentName) ){

needHide = true;

}

}

if(needHide){

apps.remove(i);

continue;

}

// This builds the icon bitmaps.

mBgAllAppsList.add(new AppInfo(packageManager, app,

mIconCache, null));

這樣修改后我們就可以隱藏指定應用的啟動圖標了,以后如果有其它需要隱藏的應用直接在arrays.xml的array_hide_app_icon中添加應用的包名和類名即可。

總結

以上是生活随笔為你收集整理的android icon hide,Android Launcher隐藏指定应用的启动图标的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。