`
xiandaoyan
  • 浏览: 21482 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Android 权限管控笔记

阅读更多

1.关于创建桌面快捷方式的方法:

       最近在研究桌面快捷方式的权限管控相关的问题,为了解决诸如360安全助手这样的应用,一安装到手机上就在桌面创建一堆快捷方式的问题。结果发现谷歌从Android N(api>=25)开始把我们想做的事情已经做了。

        新增了一个ShortcutManager,专门负责管理桌面快捷方式的创建。

        A.对于老版本使用发送Intent直接创建桌面快捷方式的方法,加了一个提示框,用于可以选择拒绝app创建快捷方式到桌面上,也可以同意。

        B.ShortcutManager还提供了新的创建快捷方式的方式,同样可以静态申明和动态创建,动态创建是使用

        

ShortcutInfo shortcutInfo = new ShortcutInfo.Builder(this, SHORTCUT_ID_SEARCH)
                    .setShortLabelResId(R.string.lable_shortcut_static_search_long)
                    .setLongLabelResId(R.string.lable_shortcut_static_search_long)
                    .setIcon(Icon.createWithResource(this, R.drawable.ic_bnsports))
                    .setIntent(new Intent(this, MainActivity.class))
                    .build();

            ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
            //这样就可以通过长按图标显示出快捷方式了
            shortcutManager.setDynamicShortcuts(Arrays.asList(shortcutInfo));

 

      用户在桌面长按应用图标,会弹出一个列表框,就是快捷方式列表,长按右边的按钮拖到桌面即可。ShortcutManager相关接口可以查文档了解

 

2.锁屏权限控制

        目前三方APP使用锁屏界面有三种方式:

        A.创建一个锁屏应用,比较复杂;

        B.使用悬浮窗实现,要比较高的优先级,需要用户授权;

        C.使用普通的Activity伪造锁屏,这种方式实现简单。使用方式

this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

        手机厂商目前一般是控制第三种的使用方式。第一种设计复杂,而且是Android标准接口可以更换锁屏应用,第二种需要高优先级窗口使用权限,需要用户授权。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics