解决华为手机Android系统10.0不能隐藏桌面图标问题,全网唯一 您所在的位置:网站首页 华为nova7por怎么隐藏图标 解决华为手机Android系统10.0不能隐藏桌面图标问题,全网唯一

解决华为手机Android系统10.0不能隐藏桌面图标问题,全网唯一

2023-06-27 16:50| 来源: 网络整理| 查看: 265

       在Android系统10.0之后对应用隐藏图标做了严格的限制,Android官网的意思就是,除非是系统应用或者是不含Android四大组件并且没有申请任何权限的app才能隐藏图标。内心一阵独白:这特么的还不如直接说不让隐藏图标!

       作为Android开发人的我们,能答应么,绝bi不能答应,找办法,全网的搜,大部分都是一个解决方法,就是将图标想方设法弄成全透明的,这个办法有风险不说,实质并未隐藏,在桌面还在占着一个图标位置。怎么办,想别的办法吧,偶然的机会在国外一个技术论坛上发现一个叫jork的哥们儿分享了一个小app,目的是打开部分华为手机的隐藏桌面(华为手机再某款之后基本关闭了隐藏桌面这个功能)。如沐春风,照着这个方向,继续奋斗,终于搞出一个小程序,可以打开已经被厂商关闭的隐藏煮面的功能,不说废话了,直接上代码!

       核心内容在华为的EMUI系统中,有个存储各种开关功能的库,有对外提供的数据接口,库名字叫:content://settings/system,里面表3个字段很简单_id,name,value,id不用说,name是表示哪个功能,value是表示设置的值。我们打印一下都有那些数据,

String id=cursor.getString(cursor.getColumnIndex("_id")); String name=cursor.getString(cursor.getColumnIndex("name")); String value=cursor.getString(cursor.getColumnIndex("value")); System.out.println("id="+id+"-----name="+name+"-----value="+value);

有很多数据,对应打开隐藏桌面,只有一个数据有用,hw_launcher_hide_apps,将这个字段值设置为true,代码如下

ContentValues var5 = new ContentValues(2); var5.put("name", "hw_launcher_hide_apps"); var5.put("value", "true"); var0.getContentResolver().bulkInsert(Uri.parse("content://settings/system"), new ContentValues[]{var5});

 

这样,你的隐藏桌面图标的功能就又打开了,一般是两个手指从屏幕中间同时向外滑动,就会弹出这个界面

然后添加你要隐藏的应用就可以,再次回到桌面,桌面上已经没有我们的app的图标了,好了,这样就算曲线完工了。

特别提示

上面几段代码需要几个权限

这两个权限在Android api22以上是无法生效的,所以,我们这段代码需要将 targetSdkVersion 设置为22,

完整代码如下,

1、工具类

public class HUAWEISDK22 { public static boolean setPrefDbValue(Context var0, String var1, String var2, String var3) { try { ContentValues var5 = new ContentValues(2); var5.put("name", var2); var5.put("value", var3); var0.getContentResolver().bulkInsert(Uri.parse("content://settings/system"), new ContentValues[]{var5}); return true; } catch (Exception var4) { Log.e("setSystemDbValue", var4.getMessage()); return false; } } public static void getDbValue(Context var0) { try { Cursor cursor =var0.getContentResolver().query(Uri.parse("content://settings/system"), null,null,null,null); cursor.getCount(); while(cursor.moveToNext()) { String id=cursor.getString(cursor.getColumnIndex("_id")); String name=cursor.getString(cursor.getColumnIndex("name")); String value=cursor.getString(cursor.getColumnIndex("value")); System.out.println("id="+id+"-----name="+name+"-----value="+value); } cursor.close(); } catch (Exception var4) { Log.e("setSystemDbValue", var4.getMessage()); } }

2、调用实例

HUAWEISDK22.setPrefDbValue(WifiActivity.this.getApplicationContext(), "system", "hw_launcher_hide_apps", "true");

好了,今天就到了,欢迎各位大佬指正。

转载请注明原地址和作者,多谢!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有