van*_*art 4 service android android-4.2-jelly-bean
我正在创建一个应用程序,我需要收集状态栏通知.系统会提示用户允许我实现NotificationListenerService(API> = 18)或AccessibilityService(其他设备),并将它们重定向到设置屏幕.
当我在API <18时,用户被重定向到辅助功能设置屏幕,他允许辅助功能服务,一切正常.但是,当用户在18> =时,即使用户被重定向到通知设置,他仍然可以导航到辅助功能设置以允许辅助功能服务.我的两个服务都在注册通知并通知我.
显然,我可以检查消息来自哪个服务并做出相应的反应,但我更喜欢一些更清洁的解决方案.我不希望用户能够同时允许这两种服务(它们都出现在设置中).
有没有办法为不同的API级别定义单独的清单文件或声明<uses-sdk>内部<application>标记,以便它们将用于不同的API级别?当然,我们不能以编程方式创建服务 - 我们必须在清单中声明它们.
步骤1:创建一个布尔资源in res/values/,named is18,set to false,以及另一个名为isLessThan18,设置为的布尔资源true.
步骤2:创建一个布尔资源res/values-v18/,名为is18,设置为true,以及第二个名为isLessThan18,设置为的布尔资源false.
第3步:android:enabled="@boolean/is18"用于你的<service>元素NotificationListenerService.
第四步:android:enabled="@boolean/isLessThan18"用于你的<service>元素AccessibilityService.
这将为每个设备仅启用一个服务,其中适当的服务由API级别决定.
| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |