- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在创建一个需要收集状态栏通知的应用程序。系统会提示用户允许我实现 NotificationListenerService(API >= 18)或 AccessibilityService(其他设备),然后他们将被重定向到设置屏幕。
当我在 API < 18 上时,用户被重定向到辅助功能设置屏幕,他允许辅助功能服务,一切正常。但是,当用户处于 18>= 时,即使用户被重定向到通知设置,他仍然可以导航到辅助功能设置以允许辅助功能服务。然后我的两个服务都在注册通知并通知我。
显然,我可以检查消息来自哪个服务并做出相应的 react ,但我更喜欢一些更简洁的解决方案。我不希望用户能够允许这两种服务(它们都出现在设置中)。
有没有办法做一些事情,比如为不同的 API 级别定义单独的 list 文件或声明 <uses-sdk>
里面<application>
标记以便它们将用于不同的 API 级别?当然,我们不能以编程方式创建服务 - 我们必须在 list 中声明它们。
最佳答案
第 1 步:在 res/values/
中创建 bool 资源, 命名为 is18
, 设置为 false
,以及名为 isLessThan18
的第二个 bool 资源, 设置为 true
.
第 2 步:在 res/values-v18/
中创建 bool 资源, 命名为 is18
, 设置为 true
,以及名为 isLessThan18
的第二个 bool 资源, 设置为 false
.
第 3 步:使用 android:enabled="@boolean/is18"
为你的 <service>
NotificationListenerService
的元素.
第 4 步:使用 android:enabled="@boolean/isLessThan18"
为你的 <service>
AccessibilityService
的元素.
这将只为每台设备启用一项服务,适当的服务由 API 级别决定。
关于android - 不同 API 级别的不同 AndroidManifest 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35856163/
我的android studio版本是3.4.0。 Gradle版本为3.4.0。我尝试清理项目,重新安装Android Studio,修改了Project Setting Build选项。到目前为止
我的应用程序仅由一个 application 模块组成。我最近试图将它分成 2 个模块(一个 feature 基础和一个 application apk 一个)以便稍后添加一个 instant-app
我正在尝试 http://developer.android.com/ 上的教程并在 AndroidManifest.xml 文件上遇到错误。发生的事情是,我在创建 Activity 时犯了一个错误(
我正在尝试将我的 ionic 3 应用程序 list 中的 allowBackup 属性设置为 false,但 gradle 提示出现以下错误: 来自 AndroidManifest.xml:4:18
我在我的 android 应用程序的 AndroidMenifest.xml 文件中遇到了以下两行: 为什么我们在 中写“编码”标签,它的用途是什么? 写第二行的目的是什么? 如果有人知道这一点
是否有任何独立的(独立于 Eclipse 或 IDE 特定的)工具可以检查 AndroidManifest.xml 文件是否有错误? 我最近遇到了一个恼人的问题,我输入了 reciever 而它本应该
我的一个项目的 AndroidManifest.xml 变得越来越大(> 1000 行),因为我必须对某些文件类型使用react并且涵盖所有情况变得越来越复杂。我想知道 list 大小是否有任何限制。
我的 AndroidManifest.xml 文件没有创建应有的启动器图标。 XML 如下:
AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅。下面是一个标准的AndroidManifest.x
我正在尝试使用eclipse中的gradle构建一个android应用程序,并且我试图在项目根目录中使用命令gradle build 构建apk, 我在 $projdir/build/intermed
简单的问题,但经过长时间的谷歌搜索,我还没有看到一个好的答案。 我有 2 种内置类型:调试、发布 我有 2 种口味:口味 1、口味 2 这将创建 4 个变体。 调试 + flavor 1 释放+ fl
我有这个错误 I/Ads (21352): Starting ad request. I/Ads (21352): SDK version: afma-sdk-a-v15090040.
每当我尝试运行该应用程序时,都会显示一个错误,并且来自 list 。下面是 list 和 logcat。请帮忙。 Manifest.xml
我可以在 AndroidManifest.xml 中设置一个设置,让我的应用程序写入文件系统而不仅仅是 SD 卡吗? *干杯 最佳答案 您应该使用定义的数据存储选项之一 here用于存储您的数据。要访
我按照一些教程使用 phonegap 的条形码扫描器插件。但是当我从现有源创建一个新的 android 项目来创建条码库时 (step 6 in this page)我收到错误:“AndroidMan
我的内存非常模糊,但是 Android SDK 中包含一个工具,当您针对未签名或调试签名的应用程序 APK(我不记得是哪个)运行它时,它会输出一个“已处理”的 AndroidManifest 文件。
是否可以在文件中指定一些信息,例如 API key ,然后以某种方式将此信息注入(inject) AndroidManifest 文件(可能在构建过程中)? 对于我的特定用例,documentatio
谁能解释一下是什么: tools:replace = "icon, label" 这之间有什么区别: tools:replace="android:icon,android:allowBackup,a
我正在尝试在嵌套 fragment 中显示 GoogleMaps: // inflate and return the layout View v = inflater.inflate
我正在发布针对中国市场的版本,我们都知道他们不支持 Playstore。从今以后,我们决定在中国商店发布。 其中一家中国商店要求在 list 文件中包含包名必须包含应用程序名称。但是现在我们的主 li
我是一名优秀的程序员,十分优秀!