Big*_*gie 8 android android-permissions
要为其他应用程序提供API,我们可以android:exported="true"在我们的应用程序中使用我们自己的内容提供商,服务和广播接收器AndroidManifest.xml.
但是,我希望用户能够在应用程序中停用API功能,这意味着我想exported="false"在代码中动态设置标志.那可能吗?
或者是通过检查我的内容提供者/服务内部是否启用API来实现此目的的唯一方法,如果禁用API,则不执行任何操作/不提供任何内容?
要了解我想以编程方式禁用API的原因,这里有一个示例:
用户A想要使用API,因此必须启用它.
但是,用户B保护了应用程序,例如通过设置访问应用程序及其内容所需的密码.但是,如果有人访问该设备,他可以访问API以绕过密码保护.因此,用户B应该能够从Apps的设置中停用API.
不确定您是否可以修改android:exported设置,但您可以尝试通过禁用/启用组件来实现您想要的效果。
例如,要禁用某个组件,您可以执行如下操作:
packageManager
.setComponentEnabledSetting(
new ComponentName(
context,
/*Your Activity, Service, BroadcastReceiver, or ContentProvider*/.class),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
Run Code Online (Sandbox Code Playgroud)
警告:在仅使用组件启用/禁用(或android:export如果可能的话进行更改)来保护您的 API 时请三思而后行,因为其他应用程序或某人(有 root 权限的设备?adb?)可能会重新启用组件。
| 归档时间: |
|
| 查看次数: |
450 次 |
| 最近记录: |