MASF server of Google

本文解析了MASF(中继服务器)在Android系统中与GoogleLocationServer间的交互过程,客户端通过特定HTTP请求与MASF服务器通信,再由MASF服务器与Google服务器进行数据交换。文中详细介绍了请求方法、数据格式及协议版本等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从下面Android代码可以得到一些有限的提示:

http://www.netmite.com/android/mydroid/frameworks/base/location/java/com/android/internal/location/LocationMasfClient.java

 

Service to communicate to the Google Location Server (GLS) via MASF server

 

// Methods exposed by the MASF server
private static final String REQUEST_QUERY_LOC = "g:loc/ql";
private static final String REQUEST_UPLOAD_LOC = "g:loc/ul";

 

可以认为,MASF是一个中继服务器,客户端和MASF服务器交互,然后MASF服务器再和Google真正的服务器交互。

客户端和MASF服务器交互通过HTTP协议,数据格式是protocol buffer,已经有jar包:

https://github.com/android/platform_external_googleclient/blob/master/googleclient-lib.jar

在请求的数据中,可以指定请求的服务的URL,版本号等信息。

 

一些定义:

  public static final short PROTOCOL_VERSION_0_0 = 0;
  public static final short PROTOCOL_VERSION_0_1 = 1;
  public static final short SERVICE_VERSION_0 = 0;
  public static final short SERVICE_VERSION_1 = 1;
  public static final short SERVICE_VERSION_2 = 2;
  public static final int BLOCK_TYPE_REQUEST_HEADER = 1;
  public static final int BLOCK_TYPE_REQUEST_PLAIN = 256;
  public static final int BLOCK_TYPE_REQUEST_MULTIPART = 257;
  public static final int BLOCK_TYPE_RESPONSE_NON_MULTIPART = 33024;
  public static final String ENCODING_GZIP = "g";
  public static final String ENCODING_NOP = "n";
  public static final String ENCODING_NONE = "";
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值