<uses-permission android:name="androidpermissionACCESS_FINE_LOCATION"></uses-permission>
private void getLocation()
{
// 获取位置管理服务
LocationManager locationManager;
String serviceName = ContextLOCATION_SERVICE;
locationManager = (LocationManager) thisgetSystemService(serviceName);
// 查找到服务信息
Criteria criteria = new Criteria();
criteriasetAccuracy(CriteriaACCURACY_FINE); // 高精度
criteriasetAltitudeRequired(false);
criteriasetBearingRequired(false);
criteriasetCostAllowed(true);
criteriasetPowerRequirement(CriteriaPOWER_LOW); // 低功耗
String provider = locationManagergetBestProvider(criteria, true); // 获取GPS信息
Location location = locationManagergetLastKnownLocation(provider); // 通过GPS获取位置
updateToNewLocation(location);
// 设置监听器,自动更新的最小时间为间隔N秒(1秒为11000,这样写主要为了方便)或最小位移变化超过N米
locationManagerrequestLocationUpdates(provider, 100 1000, 500,
locationListener); }
private void updateToNewLocation(Location location) {
TextView tv1;
tv1 = (TextView) thisfindViewById(Ridtv1);
if (location != null) {
double latitude = locationgetLatitude();
double longitude= locationgetLongitude();
tv1setText("维度:" + latitude+ "\n经度" + longitude);
} else {
tv1setText("无法获取地理信息");
}
}
百度地图API调用地址:>
第一个,你加一个中间变量,有些单片机不能直接用寄存器赋值。temp=SBUF;S2BUF=temp;第二个你再查你的波特率。乱码的原因说明你的硬件是对的也说明你的通信线路基本上是没问题的你的GPS的波特率如果在4800没有乱码的话应该就是4800你重点查你的单片机的波特率的值。第三个,你直接让你的SBUF和S2BUF往电脑串口调试助手写数据不断的发,看看你发送的数据是否正确。个人经验,这就是一个波特率的设置问题。不建议动不动就拿硬件说事。 再说,楼主选择双串口的目的,应该是对GPS进行解码然后通过另一个串口输出数据。不仅仅只是想看GPS 的数据
以上就是关于android怎样获得gps信息全部的内容,包括:android怎样获得gps信息、iPhone 手机上怎么获取 GPS 的 NMEA 数据、怎么接收gps数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)