- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
Google 正在通过电子邮件通知 Android 位置权限的更改:
We’re making a change on October 15th, 2016 that will affect appstargeting API version 21 (Android 5.0, Lollipop) or higher that useACCESS_FINE_LOCATION but don't explicitly have the"android.hardware.location.gps" uses-feature. Going forward, theseapps will be available to install on devices that don't have GPShardware. In most cases this won't be an issue since Wi-Fi and Cell-IDbased location provides high enough fidelity for the typical operationof these apps. However, any apps that require GPS hardware, such asGPS navigators, should explicitly add the"android.hardware.location.gps" uses-feature to their manifest.
If your app requires GPS to function properly and you do not includein your manifest declaration, your users may have a poor appexperience.
Also, if you’re using the fused location provider and wish to receivethe most accurate location samples from GPS (i.e. withPRIORITY_HIGH_ACCURACY), you must include the"android.hardware.location.gps" feature in your app’s manifest toensure that Google Play only distributes your app to devices with GPSsensors.
You can read more about this change in the Android Developers HelpCenter.
来自 Android Developers Help Center
In order to receive location updates from NETWORK_PROVIDER or GPS_PROVIDER, you must request the user's permission by declaring either the ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission, respectively, in your Android manifest file. Without these permissions, your application will fail at runtime when requesting location updates.
If you are using both NETWORK_PROVIDER and GPS_PROVIDER, then you need to request only the ACCESS_FINE_LOCATION permission, because it includes permission for both providers. Permission for ACCESS_COARSE_LOCATION allows access only to NETWORK_PROVIDER.
Caution: If your app targets Android 5.0 (API level 21) or higher, you must declare that your app uses the android.hardware.location.network or android.hardware.location.gps hardware feature in the manifest file, depending on whether your app receives location updates from NETWORK_PROVIDER or from GPS_PROVIDER. If your app receives location information from either of these location provider sources, you need to declare that the app uses these hardware features in your app manifest. On devices running verions prior to Android 5.0 (API 21), requesting the ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission includes an implied request for location hardware features. However, requesting those permissions does not automatically request location hardware features on Android 5.0 (API level 21) and higher.
我正在使用融合位置提供程序,以 API 21 为目标,并使用 ACCESS_FINE_LOCATION
。我并不特别关心 GPS 是否可用,只关心报告最准确的位置。
android.hardware.location.gps
和 android.hardware.location.network
。还是这仅适用于 LocationManager
而不是融合位置?我是否需要 android.hardware.location.gps
和 android.hardware.location.network
?
最佳答案
第二个引用告诉你你需要android.hardware.location.network
或 android.hardware.location.gps
,如果您特别需要一个或另一个位置提供程序。
如果您想通过 GPS 进行更新,您需要 android.hardware.location.gps
.如果您想通过 WiFi 和蜂窝网络进行更新,您需要 android.hardware.location.network
.
如果您想同时获得网络和 GPS 的更新,您应该同时包含 <uses-feature>
元素。
如果您没有指定,您的设备可能安装在没有该提供程序的设备上。例如,它可能安装在没有 GPS、蜂窝网络或 Wi-Fi 芯片的设备上。
换句话说,获取位置需要网络位置功能或 GPS 功能。如果您不声明您的应用程序需要其中之一,您可能根本无法获得位置更新。
API 21 与 20 及以下
请注意,以上仅适用于 API 21 及更高版本。在 API 21 之前,请求 ACCESS_COARSE_LOCATION
许可暗示 location.network
功能,而请求 ACCESS_FINE_LOCATION
暗示location.gps
功能(见 <uses-feature>
)。
目前唯一的变化是,对于 API 21+,任何应用请求 ACCESS_FINE_LOCATION
很快就可以安装在没有 GPS 的设备上。如果您的应用程序之前假设 GPS 可用(并且需要 GPS),您需要确保您有对 android.hardware.location.gps
的明确请求.
Google 表示,网络位置提供商现在已经可以提供良好的位置,因此发生了变化。
关于android - 我什么时候需要 android.hardware.location.gps 和 android.hardware.location.network?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39603270/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我的 Linux 机器报告“uname -a”输出如下: [root@tom i386]# uname -a Linux tom 2.6.9-89.ELsmp #1 SMP Mon Apr 20 10
我一直在开发一个最初没有在其 list 文件中指定触摸屏要求的应用程序,因此根据文档,假定为 android.hardware.touchscreen。因为该应用不需要高级手势,具有假触摸屏的设备 (
Google 正在通过电子邮件通知 Android 位置权限的更改: We’re making a change on October 15th, 2016 that will affect apps
我有 然后我为新库添加了以下内容: 我是否需要删除旧的 android.hardware.camera 标签,或者我是否仍需要放置它们以避免 PlayStore 过滤掉我的应用程序? 应用的最小
我有一个支持返回到 Android API 19 (KitKat) 的应用程序,并且在内部使用大量相机。 目前,android.hardware.camera2 是使用camera API 的推荐方式
我想为我正在编写的一堆模块创建这个通用包装器。包装器应该能够将这些模块连接到不同类型的 NoC,而无需更改内部模块的行为。 我认为这样做的一种方法是以下。 考虑一个非常简单的模块来包装: module
人们如何以一种抽象的方式思考设计数字逻辑芯片? 我目前正在学习第一章“计算系统的要素”,我已经实现了以下门,从 Nand 开始。 不是 和 或者 异或 多路复用器 多路复用器 16位不 16位和 16
我有以下数据: A = [a0 a1 a2 a3 a4 a5 .... a24] B = [b0 b1 b2 b3 b4 b5 .... b24] 然后我想乘以如下: C = A * B' = [a0
我从事软件/软件编程多年。多年来,我也对硬件编程(电路 + 机器人 + 等)感兴趣。 请从我可以开始硬件编程的地方提供建议。我的目标是将 s/w 和 h/w 结合起来一起工作。 最佳答案 我推荐 Ar
假设 l1 和 l2 缓存请求导致未命中,处理器是否会在访问主内存之前停止? 我听说过切换到另一个线程的想法,如果是的话,用什么来唤醒停滞的线程? 最佳答案 现代 CPU 中同时发生了很多很多事情。当
我们公司的一台服务器有 32 个 CPU,我们有 1000 多个非常大的文件要处理。我不确定同时读取 32 个文件是否是个好主意,这样所有内核也可以同时执行独立计算。谁能简单解释一下硬盘的工作原理?如
我想进入多核编程(不是特定于语言)并且想知道可以推荐哪些硬件来探索这个领域。 我的目标是升级我现有的桌面。 最佳答案 如果可能的话,我建议买一台双路机器,最好是四核芯片。您当然可以获得单插槽机器,但双
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我今天正在分析一个程序,该程序执行大量缓冲网络事件,该程序大部分时间都在 memcpy 中,只是在库管理的网络缓冲区和它自己的内部缓冲区之间来回移动数据。 这让我想到,为什么英特尔没有“memcpy”
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我想了解Logisim中类似我的6502工作处理器项目的确切中断是什么。 我知道中断会执行以下步骤: 停止处理当前程序 将所有未完成的数据保存到堆栈中 是否“SOMETHING” 加载未完成的数据,让
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 6年前关闭。 Improve this questi
我对 linux 设备驱动程序书中的以下陈述感到有些困惑。 http://www.linuxdriver.co.il/ldd3/ 13.2. USB and Sysfs To help underst
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我是一名优秀的程序员,十分优秀!