Android 桌面应用管理

我们开发的桌面应用管理功能:开机自己启动,home退不出去,关闭返回键,屏蔽状态栏,主要服务于学校使用的桌面管理应用

直接上代码

        <activity
            android:name=".MainActivity"
            android:screenOrientation="landscape"
            android:launchMode="singleTop">
            <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>
主要添加这俩个属性    
            

退出桌面应用功能
ArrayList<IntentFilter> intentList = new ArrayList<>();
ArrayList<ComponentName> cnList = new ArrayList<>();
context.getPackageManager().getPreferredActivities(intentList, cnList, null);
for(int i = 0; i < cnList.size(); i++) {
    IntentFilter dhIF = intentList.get(i);
    if(dhIF.hasAction(Intent.ACTION_MAIN) && dhIF.hasCategory(Intent.CATEGORY_HOME)) {//遍历过滤所有launcher
        try {
            String name = cnList.get(i).getPackageName();
            //清除原有的默认launcher
            context.getPackageManager().clearPackagePreferredActivities(name);
        }catch (Exception ex){
        }
    }
}
主要逻辑:获取系统中所有有桌面权限的应用APP集合,清空,系统会默认系统桌面。


代码就这些,最中要的一步就是手动设置他的权限,设置-应用管理-默认应用管理(一般在应用管理页面内的右上角是个图标,不同的系统不一样就在这个页面)-桌面-找到我们的app 确定

你可能感兴趣的:(android)