公司没有申请 google认证,但是又要做海外生意,如此一来,海外客户在不知情的情况下进行开发,肯定要用到google接口。
为了不暴露,就必须在灰色地带游走,目前方案是暂时集成了基本的google框架,但是只能个人用户激活,才能正常使用部分功能。

How to get GMS apps from GAPPs and integrate them into AOSP

请参考:
How_to_get_GMS_apps_from_GAPPs_and_integrate_them_into_AOSP.pdf
Integrate_gapps_for_Android9.0_klein_20181219.pdf

microg GmsCore

请参考:
https://github.com/microg/android_packages_apps_UnifiedNlp/
这个方法同事在android L上成功过,将NetworkLocation.apk编译进系统即可进行网络定位,但是在android P上,我怎么试都不成功

高通支持

这个很奇怪,我什么都没有修改,但是询问QC之后打开log就成功了。
记录一下
提case给QC,获得支持的文档
80-p9024-3_c_qualcomm®_nlp_integration_guidance_for_android_p_and_q_platforms.pdf

Created By: Duan Jianjun (12/30/2019 12:02 AM)
Hi QC,我创建了一个local.prop并push到/data/下启动定位时的log
12-30 07:49:10.649 D/MainActivity( 6479): network provider is enable = true
定位到的log
12-30 07:59:48.324 E/MainActivity( 6479): 打印经纬度: longitude:121.4191312 latitude:31.1904834精确位置29.818海拔43.79999923706055thanks
----------
Created By: Helen Xu (12/29/2019 9:55 PM)
Dear customer,
please check the following and capture one new logAdd the following lines in /data/local.prop. if not exist,please create one:
log.tag.OsAgent=VERBOSE
log.tag.IzatProvider_fused=VERBOSE
log.tag.NpProxy=VERBOSE
log.tag.LocationManagerService=VERBOSE
log.tag.Gnsslocationprovider=VERBOSE
log.tag.IZatManager=VERBOSE
log.tag.IzatService=VERBOSE
log.tag.IzatSvc_IzatManager=VERBOSE
log.tag.IzatSvc_OSNPProxy=VERBOSE
log.tag.LocationProviderProxy-network=VERBOSE
log.tag.IzatProvider-network=VERBOSE
3. Change access permission to rw
------- adb shell chmod 660 /data/local.prop
----------
Created By: Duan Jianjun (12/29/2019 8:08 PM)
Hi QC,虽然定位成功了,但是有一个很严重的问题:恢复出厂设置,再进行定位,网络定位需要20分钟才能成功,请问如何解释?thanks
----------
Created By: Duan Jianjun (12/29/2019 6:43 PM)
Hi QC,成功了!
可是我什么都没有做!!!很奇怪根据文档80-P9024-3中1.4.3小节
(1)
adb shell getprop ro.location.osnlp.package
com.google.android.gms
adb shell getprop ro.location.osnlp.region.package
以上两个值为平台默认,没有修改(2)
adb shell cat vendor/etc/izat.conf
没有参数OSNLP_PACKAGE和REGION_OSNLP_PACKAGE
因为:
#########################################
# NLP PACKAGE SETTINGS
#########################################
# OSNLP_PACKAGE has been deprecated and replaced
# by system property ro.location.osnlp.package
# REGION_OSNLP_PACKAGE has been deprecated and
# replaced by system property ro.location.osnlp.region.package(3)
################################
# NLP Settings
################################
# NLP_MODE 1: OSNLP Only, 2: QNP Only, 3: Combo, 4: QNP preferred
# For Automotive products, please use NLP_MODE = 4 only.
# NLP_TOLERANCE_TIME_FIRST: Time in ms used in Combo mode
# to determine how much Tolerance for first position
# NLP_TOLERANCE_TIME_AFTER: Time in ms used in Combo mode
# to determine how much Tolerance for positions after first
# NLP_THRESHOLD: Sets how many failures needed before
# switching preferred NLP in Combo mode
# NLP_ACCURACY_MULTIPLE: Determines how far off the accuracy
# must be, in multiples, between two NLP location reports to
# be considered much worse accuracy. Used in switching logic
# NLP COMBO MODE USES QNP WITH NO EULA CONSENT: Determines
# whether or not to still send network location requests to
# QNP when the EULA is not consented to by the user. QNP can
# still return ZPP locations or injected locations even
# without EULA consent, but the uncertainty can be high.
# QNP preferred mode prefers QNP when there is EULA consent,
# otherwise OSNLP is used.
NLP_MODE = 4
NLP_MODE_EMERGENCY = 2
NLP_TOLERANCE_TIME_FIRST = 5000
NLP_TOLERANCE_TIME_AFTER = 20000
NLP_THRESHOLD = 3
NLP_ACCURACY_MULTIPLE = 2
NLP_COMBO_MODE_USES_QNP_WITH_NO_EULA_CONSENT = 1(4)
将/vendor/etc/gps.conf中的Debug_LEVEL = 5,log见附件
没有找到/data/local.prop文件thanks
----------
Created By: Helen Xu (12/27/2019 2:08 AM)
Dear customer,
if network location could not work according to the configuation from doc 80-P9024-3, please capture one detailed log according to following steps:1. Set Debug_LEVEL = 5 in /etc/gps.conf.
2. Add the following lines in /data/local.prop.
log.tag.OsAgent=VERBOSE
log.tag.IzatProvider_fused=VERBOSE
log.tag.NpProxy=VERBOSE
log.tag.LocationManagerService=VERBOSE
log.tag.Gnsslocationprovider=VERBOSE
log.tag.IZatManager=VERBOSE
log.tag.IzatService=VERBOSE
log.tag.IzatSvc_IzatManager=VERBOSE
log.tag.IzatSvc_OSNPProxy=VERBOSE
log.tag.LocationProviderProxy-network=VERBOSE
log.tag.IzatProvider-network=VERBOSE
3. Change access permission to rw
------- adb shell chmod 660 /data/local.propthanks
----------
Created By: Helen Xu (12/27/2019 2:02 AM)
Dear customer,
because your device is used oversea, please use google and refer to doc 80-P9024-3
QUALCOMM® NLP INTEGRATION GUIDANCE FOR ANDROID P AND Q PLATFORMS to configure.refer another doc : 80-YA517-2 Android Pie – Qualcomm Location Update for you to check your configure.thanks
----------
Created By: Duan Jianjun (12/27/2019 1:24 AM)
Hi QC,1.80-NK218-2查找不到,只查到了80-NK218-12.海外环境能用google,无法使用baidu,com.google.android.gms能否适配使之正常使用3.在android L上已经实现了,通过整合基本的google框架,再添加NetworkLocation.apk,网络定位正常。
现在用同样的方法在android P上无法定位成功4.80-P9024-3
QUALCOMM® NLP INTEGRATION GUIDANCE FOR ANDROID P AND Q PLATFORMS
根据android P的文档查看设备得到:
ro.location.osnlp.package=com.google.android.gms
NLP_MODE = 4
如何在这个前提下使用网络定位
----------
Created By: Helen Xu (12/26/2019 11:36 PM)
Dear customer,
for this feature, you need to integrate third party NLP like Baidu or NaviAuto. Please refer to documents in below for more details.
1. 80-P9024-1 Rev. C-Qualcomm® NLP Integration Guidance for Android N
2. 80-P6319-2 B-Baidu FLP and NLP Integration Guidance for Android M
3. 80-P6319-1 B-AutoNavi FLP and NLP Integration Guidance for Android M
4. 80-NK218-2 Rev. A_GTP Device Configuration for China Market Devices thanks

自己瞎改的代码

上一部分我说没有修改过,询问QC之后编译一个版本就好了,但是其实也有改动,不过都是参考microg GmsCore还有网上杂七杂八的解答修改的,为了同步代码状态,生成一个patch记录一下:

Index: frameworks/base/core/res/res/values/config.xml
===================================================================
--- frameworks/base/core/res/res/values/config.xml  (版本 2846)
+++ frameworks/base/core/res/res/values/config.xml   (工作副本)
@@ -1718,6 +1718,8 @@<string-array name="config_locationProviderPackageNames" translatable="false"><!-- The standard AOSP fused location provider --><item>com.android.location.fused</item>
+        <item>com.google.android.gms</item></string-array><!-- This string array can be overriden to enable test location providers initially. -->
Index: frameworks/base/packages/SettingsProvider/res/values/defaults.xml
===================================================================
--- frameworks/base/packages/SettingsProvider/res/values/defaults.xml   (版本 2846)
+++ frameworks/base/packages/SettingsProvider/res/values/defaults.xml    (工作副本)
@@ -46,7 +46,7 @@Network location is off by default because it requiresuser opt-in via Setup Wizard or Settings.-->
-    <string name="def_location_providers_allowed" translatable="false">gps</string>
+    <string name="def_location_providers_allowed" translatable="false">gps,network</string><bool name="assisted_gps_enabled">true</bool><bool name="def_netstats_enabled">true</bool><bool name="def_usb_mass_storage_enabled">true</bool>

之后通过高通确认,这部分上层代码也是要修改的,相当于overlay了底层的值。

最后注意,
网络定位需要在设置中打开Google Location Accuracy
Settings - Security & location - Location - Google Location Accuracy - switch on
并且关闭高通的定位
Settings - Security & location - Location - Accelerated Location - DISAGREE

第一次网络定位需要30秒~3分钟不等,怀疑和网络环境有关。

android P使用google接口进行定位相关推荐

  1. Android集成百度地图接口,实现定位+路径规划。新手教程

    本文主要内容包括:如何根据百度地图接口实现定位,并实现从A到B的路径规划功能(驾车,公交,步行).本文主要提供给新手参考,如果有错误希望博友们指出以便及时改正. 1.申请百度地图SDK的密钥(填写安全 ...

  2. Android 开发笔记 Google地图定位与路线显示

    当你的应用需要加入Google地图,并且需要根据两点坐标规划路线时,就需要在应用中加入Google地图,调用指定的api获取路线数据,再把数据显示出来. 1.加载google地图,实例化一个地图视图对 ...

  3. android位置服务与GPS实时定位工具类

    一.概述 据专家说:人类活动80%的信息与空间位置信息有关,这还真不是专家吹牛.举个例子:你跟女神约饭,你得知道女神在哪里吧?你们选择约在哪里的餐厅最合适?你们过去分别有多远?你们怎么过去?--总结起 ...

  4. 一、初识GVR ---- Android VR视频/Google VR for Android /VR Pano/VR Video

    原文链接: http://blog.csdn.net/qq_24889075/article/details/52118633 http://www.jianshu.com/p/09c0822b9d1 ...

  5. android使用高德地图SDK获取定位信息

    注册账号.创建应用.获取API KEY等这些就不说了,按照官网来就行,我们来讲讲项目的配置及示例代码. 高德地图获取定位信息配置要比百度地图简单多了,这是我比较喜欢的一点,而且之前用百度地图嵌入一个应 ...

  6. Android:使用百度地图SDK定位当前具体位置(类似QQ发表说说的选择地点功能)

    百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口. 可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,可以轻松访问 ...

  7. Android从零开始:Google Play服务

    Google Play服务库使Android开发人员可以轻松连接并使用Google支持的功能,并向后兼容新功能. 使用Google Play服务有两个主要部分,即Google服务后端和客户端应用. 在 ...

  8. 除了 Android 12,Google I/O 开发者大会还有哪些亮点?

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 头图 | 来自谷歌官方 去年,因为一场席卷全球.突如其来的特殊情况,出于安全考虑,谷歌首次取消了一年一度的 Google I/O 开发者 ...

  9. Android 通过Service 实现后台GPS定位

    前言 做移动GIS开发经常会使用到定位功能,很多时候通过代码里的手写定位代码在Activity中就实现了.虽然比较简单,但是也会有一些问题,比如定位慢,代码杂乱.一直都知道可以通过Service进行后 ...

最新文章

  1. 基于OpenCV的实战:轮廓检测(附代码解析)
  2. CSRankings全球排名第一的清华人工智能专业如何打造?听张钹院士娓娓道来
  3. 服务差,信号不好真的是联通用户下滑的原因吗?
  4. 跟一个傻逼程序员合作是什么感受?
  5. 经典中的品味:第一章 C++的Hello,World!
  6. 如何快速学习一门技术或进入一个岗位
  7. ubuntu16.04 修改分辨路并永久保存
  8. 疯狂Java讲义笔记汇总
  9. Qt编写地图综合应用14-离线地图下载
  10. 医院排队系统排队叫号系统
  11. 如何计算置信区间,RMSE均方根误差/标准误差:误差平方和的平均数开方
  12. 微信相关开发问题收集
  13. 微信小程序开发(第一篇 开发环境的准备+demo获取微信用户信息)
  14. 让 CAS 5.1.8 支持http,解决未认证授权服务错误提示问题
  15. MYSQL、JDBC
  16. 在国内如何使用gmail_如何在Gmail中使用自定义背景
  17. k8s eviction机制
  18. java重命名_java实现文件重命名的方法
  19. 如何设置potplayer播放器把人声凸显出来并降噪?
  20. python分析链家二手房信息----数据分析实战(一)

热门文章

  1. MIPS和ARM架构简单对比
  2. 华为鸿蒙手表实现除夕夜烟花燃放效果
  3. 台州亿丰克瑞斯伺服驱动器调试说明
  4. CUDA矩阵运算之cuBLAS库的常用函数
  5. Activiti常见操作数据表关系
  6. 理论流体力学类毕业论文文献都有哪些?
  7. 使用柏林噪声随机创建像素地图
  8. 巅峰极客第一场CTF部分writeup
  9. 简单声音模拟器--能播放各种声音
  10. 使用C语言+EasyX完成消灭星星游戏(1)