安卓自学笔记
第一章:基础知识
第十二节:权限系统
请求权限实例
在主页面添加一个WebView控件,并让其默认加载百度首页。代码如图:


发现,这样写是加载不了网页的。这是因为所使用的WebView控件需要一个权限,互联网的访问权限。这个权限要在AndroidManifest.xml文件里面进行关于INTERNET的声明,如图:

为代码添加权限检查
注销以上代码。然后写一个Hello类,并自行定义一个sayHello方法的调用权限,这个权限需要在AndroidManifest.xml里面进行注册。
其中checkResult用来接收检查权限函数的返回值,这个只有两个值的可能,一个是PackageManager.PERMISSION_GRANTED表示拥有权限,还有一个是PackageManager.PERMISSION_DENIED表示权限不足。Hello类代码和配置文件注册代码如图:



运行之后发现输出权限不足,手机虚拟机报错,如图:

因为应用不具权限,所以应该为其声明好权限,在配置文件里进行配置,如图:

为基本组件添加权限检查
再注销以上代码。添加一个新的A,用来当做被启动的A。再到配置文件里对这个A进行权限的声明,想启动它必须要有相关权限,如图:

这时候如果在本应用的主页面添加一个按钮用来启动新的A,是可以启动成功的,因为它们都在同一个应用程序内。
但如果这个启动按钮在另一个应用内。
首先先在原应用内为跨应用启动写上一个<intent-filter>如图:

另一个应用启动按钮代码如图:

会发现此时使用另一个应用的按钮启动不了原应用的A,如图:

这是安全和权限的问题导致的,为另一个应用声明好权限后,就能成功启动。如图:

浙公网安备 33010602011771号