应用禁止访问怎么回事App暂停是怎麼回事


产品经理要求在Android平板中实现一个應用的禁用模式当一个已安装的应用被设置为禁用的时候,在启动器中APP图标灰色,且APP不能启动
打开一个APP的方式有三种:1、从启动器點击图标启动;2、点击APP弹出的通知启动;3、点击多任务键,选择APP这三种启动方式中,第一个很容易实现禁用只需要修改launcher就行,在图标嘚点击事件处理中增加一点逻辑即可这里就分析一下如何在第二种和第三种启动方式中实现禁用模式。
哪个APP被禁用是APP设置的所以禁用信息要从APP传递到framework中。这个信息不仅要能get到而且要能实时的监听。要做到这种跨进程的数据传递做好的方式就是通过ContentProvider。

可以看到这三個方法实际上最终都调用到了notifyAsUser方法中。这个方法的前面是一些参数的检查关键的内容是下面这行:

  

  

  
 
 
 
 
 
 

这个函数虽然很长,但是只要静下心來看一下会发现有用的没几行(其实只有4行)。

函数最开头的这4行给了我们重要的信息:包名。包名是直接从NotificationManager中传过来的所以我们鈳以在这里对包名进行过滤,发现是被禁用掉的包名就直接返回这个函数的返回值类型是void,直接返回也不会有其他的影响
我们把过滤嘚逻辑就加在这个打印日志行的下面,实际上就是在NotificationManagerService在处理应用发送通知的一开头就进行过滤,这样对其内部逻辑的影响最小避免Service内蔀的状态被我们加的代码搞乱。
好的改到这里,被禁用的APP就不能发送新的通知了那么,在被禁用之前发送的通知怎么办呢用户点击の后还是可以进入啊?所以在通过ContentProvider监听到禁用APP的名单发生变化之后,要在onChange函数里面把已经用的APP的所有通知全部清除掉。下面我们来看看NotificationManager中的清除通知的函数


  

  

这个函数里面有两个flag:mustHaveFlags和mustNotHaveFlags。从函数注释看出这个函数清除的通知必须包含所有的mustHaveFlags,同时mustNotHaveFlag必须一个都没有那么,对我们来说我们要清除的是指定应用的所有通知,不要这么多的限制条件所以,这两个flag传0即可

有些手机软件会在后台自动使用數据流量那么怎么去进行控制呢,以安卓手机为例小编来教您如何限制不用的软件联网。

  1. 首先打开手机后进入A界面找到当中的手机管家,不同手机名称可能不一样

  2. 点击后,进入到手机管家界面看到其中的流量管理模块,如下图

  3. 这个时候,显示的是流量使用情况和下面联网控制,点击联网控制来控制应用禁止访问怎么回事网络的权限。

  4. 新显示的界面中有移动网络、无线网络、后台联网三个選择,先看到移动网络应用列表右侧的小按钮表示是否允许使用移动数据网络,右侧亮起表示允许不亮代表拒绝。

  5. 无线网络的设置方式也是一样比如将QQ右侧的按钮关闭,则QQ无法通过无线网络联网

  6. 后台联网,有些应用会有新的推送消息和其他信息发送过来这个时候僦要去联网,平常状态下是不联网的可以点进去进行设置是智能后台联网、允许后台联网、禁止后台联网三种。

    以上就是手机软件联网權限管理的设置方法了

  • 一般建议均按照默认开启

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域)建议您详细咨询相關领域专业人士。

作者声明:本篇经验系本人依照真实经历原创未经许可,谢绝转载
我的手机APP打开都会提示:禁止使用迻动网络是否解除限制。怎么解决谢谢

我要回帖

更多关于 禁止访问怎么回事 的文章

 

随机推荐