有两个应用程序App1和App2,这里为App1添加一个自定义的应用权限,然后通过App2启动App1.
(一)App1
在App1的MainFest文件中,添加Permission权限,其次为需要被启动的Activity添加intent-filter,设置category和action两项内容。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<permission android:name="com.example.componentpermission.permission.MainActivity2"/>
<application>
<activity android:name=".MainActivity2"
android:label="MainActivity2"
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="com.example.componentpermission.intent.action.MainActivity2"/>
</intent-filter>
</activity>
</application>
(二)App2
(1)在App2的Mainfest文件中添加使用权限即可
<uses-permission android:name="com.example.componentpermission.intent.action.MainActivity2"/>
(2)在需要启动的地方使用如下方法启动:
startActivity(new Intent("com.example.componentpermission.intent.action.MainActivity2"));
为WebView添加INTERNET权限
为能够在webview控件中加载http的url,需要在应用程序的Manifest文件中添加用户权限
<uses-permission android:name="android.permission.INTERNET"/>
这里有一点需要注意,从Android9.0(API级别28)开始,单纯这样赋予权限会出错,需要在application节点中添加:
android:usesCleartextTraffic="true" //应用程序是否打算使用明文网络流量,如Http。。。。。
这是因为:从Android 9.0(API级别28)开始,默认情况下禁用明文支持,即usesCleartextTraffic属性的默认值为false,因此http的url均无法在webview中加载。而在目标API为27及更低的应用程序中则默认为true,因此无需额外设置。
写在最后:文章是在学习过程中做的学习笔记,同时与志同道合者分享,文章内容均经过我自己实验证实可行,如有问题欢迎留言,很高兴一起交流讨论,共同进步!