比如,我想检测我的应用是否有静默安装的能力,有的话就走静默安装的流程,没有的话就走标准的安装流程。这个时候就需要检测是否有安装应用的权限:
<!-- 静默安装 --> <uses-permission android:name="android.permission.INSTALL_PACKAGES" tools:ignore="ProtectedPermissions"/>
if(ActivityCompat.checkSelfPermission(AppContextUtils.getAppContext(),Manifest.permission.INSTALL_PACKAGES) == PackageManager.PERMISSION_GRANTED){
Toast.makeText(this, "有权限",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this, "无权限",Toast.LENGTH_LONG).show();
}
使用兼容包下面的这个方法,返回值有两个。根据返回值就能确定是否有权限了。
另外在manifest中如果即使声明了权限,非系统platform签名或是system/priv-app/目录下的应用依然不会有权限。
在这里声明权限还是有个警告,使用tools来消除这个警告。