Androidのアプリケーションは、すべての情報が無効になっているか凍結され得ます

携帯電話のアプリケーションは、アプリケーションが無効にできるかどうかを判断するために、通常の直接インターフェースので、凍結禁止の使用であり、

/**
     * 获取手机应用程序
     * @return
     */
    private List<LauncherActivityInfo> getAllApps() {
        //获取用户列表
        List<UserHandle> userHandles = UserManagerCompat.getInstance(mLauncher).getUserProfiles();
        List allApps = new ArrayList<>();
        //遍历userHandles
        for (UserHandle userHandle : userHandles) {
            //获取用户下应用程序列表
            allApps.addAll(LauncherAppsCompat.getInstance(mLauncher).getActivityList(null, userHandle));
        }

        }

        return allApps;
    }
/**
*获取被禁或冷冻应用列表
*
*/
public List getDisabledAppList(Context context) {
        PackageManager packageManager = context.getPackageManager();
        //获取到所有的安装包
        List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
        ArrayList<String> list = new ArrayList<>();
        for (PackageInfo installedPackage : installedPackages) {
            String packageName = installedPackage.packageName;

            //判断应用是否被禁用
            if(context.getLauncher(mLauncher).isAppDisabled(packageName)){
                ComponentName componentName = ComponentName.createRelative(installedPackage.packageName,installedPackage.applicationInfo.className);
                String appName =  
                getApplicationNameByPackageName(context,installedPackage.packageName);
                Drawable appIcon =getAppIconByPackageName(context,installedPackage.packageName);
                Intent intent = new Intent();
                intent.setComponent(componentName);
                //没有图标应用
                if(appIcon != null) {
                    AppInfo myapp = new AppInfo();
                    myapp.setAppLable(appName);
                    myapp.setAppIcon(appIcon);
                    myapp.setIntent(intent);
                    myapp.setComponentName(componentName);
                    allAppsInfo.add(myapp);
                }
            }
        }

        return list;
    }
/**
     * 通过包名获取应用名
     * @param context
     * @param packageName
     * @return
     */
    public static String getApplicationNameByPackageName(Context context, String packageName) {
        PackageManager pm = context.getPackageManager();
        String Name;
        try {
            Name = pm.getApplicationLabel(pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA)).toString();
        } catch (PackageManager.NameNotFoundException e) {
            Name = "";
        }
        return Name;
    }
 /**
     * description 通过包名获取应用图标
     * @param ApkTempPackageName
     * @return
     */
    public static Drawable getAppIconByPackageName(Context context , String ApkTempPackageName){
        Drawable drawable = null;
        try{
            drawable = context.getPackageManager().getApplicationIcon(ApkTempPackageName);
        }
        catch (PackageManager.NameNotFoundException e){
            e.printStackTrace();
        }
        return drawable;
    }
public class AppInfo{
        private String appLable;
        private Drawable appIcon;
        private Intent intent;
        private ComponentName componentName;
        private AppInfo(){

        }
        private String getAppLable(){
            return appLable;
        }

        private void setAppLable(String appLable) {
            this.appLable = appLable;
        }

        private Drawable getAppIcon(){
            return appIcon;
        }

        private ComponentName getComponentName() {
            return componentName;
        }

        private void setAppIcon(Drawable appIcon) {
            this.appIcon = appIcon;
        }

        public Intent getIntent(){
            return intent;
        }

        private void setIntent(Intent intent) {
            this.intent = intent;
        }

        private void setComponentName(ComponentName componentName) {
            this.componentName = componentName;
        }
    }

 

公開された92元の記事 ウォン称賛27 ビュー90000 +

おすすめ

転載: blog.csdn.net/zhuxingchong/article/details/100566521