您的位置:首页 > 移动开发 > Android开发

Android GMS无法通过网络定位

2017-05-26 11:25 369 查看
前言

欢迎大家我分享和推荐好用的代码段~~

声明

欢迎转载。但请保留文章原始出处:

CSDN:
http://www.csdn.net

雨季o莫忧离:http://blog.csdn.net/luckkof

正文

预置KK GMS后,打开系统定位功能,Google Maps等应用无法通过网络定位

有两个部分须要确认:
1.系统对提供LocationProvider的应用须要进行申明,而KK GMS将NetworkLocation应用的功能集成到了GmsCore(Google Play Service)中。所以须要加入GmsCore的packageName进去:

framework/base/core/res/res/values/config.xml

<string-array name="config_locationProviderPackageNames" translatable="false">

<!-- The standard AOSP fused location provider -->

<item>com.android.location.fused</item>

<!-- MTK add for GMS -->

<item>com.google.android.location</item>

<item>com.google.android.gms</item>

<!-- MTK add end -->

</string-array>

2.GMS4.4_r3(包括r3)之后版本号在满足1条件下依旧可能存在无法使用网络定位功能。请继续依照例如以下改动操作:
请在alps\external\wpa_supplicant_8\wpa_supplicant\bss.c中的例如以下函数中改动

static void wpa_bss_copy_res(struct wpa_bss *dst, struct wpa_scan_res *src,

struct os_time *fetch_time)

{

struct timespec ts;//add this line;

dst->flags = src->flags;

os_memcpy(dst->bssid, src->bssid, ETH_ALEN);

dst->freq = src->freq;

dst->beacon_int = src->beacon_int;

dst->caps = src->caps;

dst->qual = src->qual;

dst->noise = src->noise;

dst->level = src->level;

/* dst->tsf = src->tsf;*/ //delete this line

//add below code

if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0)

dst->tsf = src->tsf;

else

dst->tsf = ts.tv_sec*1000000 + ts.tv_nsec/1000;

//end

calculate_update_time(fetch_time, src->age, &dst->last_update);

}

假设是编译模块进行验证,请先运行./mk &project_name mm external/wpa_supplicant_8/wpa_supplicant

将alps/out/target/product/project_name/system/bin/wpa_supplicant push到system/bin/下,再运行命令

adb shell chmod 755 system/bin/wpa_supplicant

重新启动系统后验证

谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: