当前位置: 首页 > news >正文

合肥企业网站营销电话开发公司企业展厅

合肥企业网站营销电话,开发公司企业展厅,城乡与建设部网站,单页企业官网模板毫无疑问,要想使用LocationManager就必须要先获取到它的实例,我们可以调用Context的getSystemService()方法获取到。getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务,这里传入Context.LOCATION_SERVICE即可。因此&#…

  毫无疑问,要想使用LocationManager就必须要先获取到它的实例,我们可以调用Context的getSystemService()方法获取到。getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务,这里传入Context.LOCATION_SERVICE即可。因此,获取LocationManager的实例就可以写成: 

LocationManager mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

Android 中一般有三种位置 提供器可供选择,GPS_PROVIDER、NETWORK_PROVIDER和PASSIVE_PROVIDER。其中前两种使用的比较多,分别表示使用GPS定位和使用网络定位。这两种定位方式各有特点,GPS定位的精准度比较高,但是非常耗电,而网络定位的精准度稍差,但耗电量比较少。 我们应该根据自己的实际情况来选择使用哪一种位置提供器,当位置精度要求非常高的时候,最好使用GPS_PROVIDER,而一般情况下,使用NETWORK_PROVIDER会更加得划算。 

 将选择好的位置提供器传入到getLastKnownLocation()方法中,就可以得到一个Location对象,如下所示: 

String provider = LocationManager.NETWORK_PROVIDER; Location location = locationManager.getLastKnownLocation(provider); 
 这个Location对象中包含了经度、纬度、海拔等一系列的位置信息,然后从中取出我们所关心的那部分数据即可。 
 如果有些时候你想让定位的精度尽量高一些,但又不确定GPS定位的功能是否已经启用,这个时候就可以先判断一下有哪些位置提供器可用,如下所示: 

List<String> providerList = locationManager.getProviders(true);

 可以看到,getProviders()方法接收一个布尔型参数,传入true就表示只有启用的位置提供器才会被返回。之后再从providerList中判断是否包含GPS定位的功能就行了。 

 另外,调用getLastKnownLocation()方法虽然可以获取到设备当前的位置信息,但是用户是完全有可能带着设备随时移动的,那么我们怎样才能在设备位置发生改变的时候获取到最新的位置信息呢?不用担心,LocationManager还提供了一个requestLocationUpdates()方法,只要传入一个LocationListener的实例,并简单配置几个参数就可以实现上述功能了,写法如下: 

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, new LocationListener() {@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {// TODO Auto-generated method stub}@Overridepublic void onProviderEnabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onProviderDisabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onLocationChanged(Location location) {// TODO Auto-generated method stub}});

  这里requestLocationUpdates()方法接收四个参数,第一个参数是位置提供器的类型,第二个参数是监听位置变化的时间间隔,以毫秒为单位,第三个参数是监听位置变化的距离间隔,以米为单位,第四个参数则是LocationListener监听器。这样的话,LocationManager每隔5秒钟会检测一下位置的变化情况,当移动距离超过10米的时候,就会调用LocationListener的onLocationChanged()方法,并把新的位置信息作为参数传入。 

整个例子的代码如下所示

package com.test.locationtest;import java.util.List;import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends Activity {private TextView tvLocation;private LocationManager locationManager;private String provider;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvLocation = (TextView) findViewById(R.id.tv_location);locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);List<String> allProvider = locationManager.getProviders(true);if (allProvider.contains(LocationManager.GPS_PROVIDER)) {provider = LocationManager.GPS_PROVIDER;} else if (allProvider.contains(LocationManager.NETWORK_PROVIDER)) {provider = LocationManager.NETWORK_PROVIDER;} else {Toast.makeText(this, "请打开GPS 或者 数据", Toast.LENGTH_SHORT).show();return;}Location location = locationManager.getLastKnownLocation(provider);Log.d("MainActivity", "显示位置");showLocation(location);}LocationListener locationListener = new LocationListener() {@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {// TODO Auto-generated method stub}@Overridepublic void onProviderEnabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onProviderDisabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onLocationChanged(Location location) {showLocation(location);}};@Overrideprotected void onDestroy() {super.onDestroy();if (locationManager != null) {// 关闭程序时将监听器移除locationManager.removeUpdates(locationListener);}}private void showLocation(Location location) {//这里获取location 可能为空  while (location == null) {locationManager.requestLocationUpdates(provider, 2000, (float) 0.1,locationListener);}if (location != null) {String currentPosition = "latitude is " + location.getLatitude()+ "\n" + "longitude is " + location.getLongitude();Log.d("MainActivity", currentPosition);tvLocation.setText(currentPosition);}}
}

获取Location 可能为空 ,可以自己百度解决下


还需要增加以下权限

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.INTERNET"/>




http://www.yayakq.cn/news/777614/

相关文章:

  • 海南网站建设哪家不错襄阳营销网站建设
  • wordpress 插件 code网站seo数据分析
  • 100m的网站 数据库免费网址推荐
  • 企业推广的成功在于他们发现沈阳网站推广优化公司
  • 企业门户网站建设管理制度响应式布局代码例子
  • 江门制作网站公司国外的平面设计网站
  • 免费模板建设网站做视频网站适合用什么服务器
  • 俱乐部网站方案wordpress 3.6升级4.7
  • 大学生网站开发文档建设企业网站企业网上银行登录
  • 江西旺达建设工程有限公司网站中国空间站组成部分
  • 安徽做网站找谁网站建设时如何选择合适的服务器
  • 一个完整的网站制作流程模仿网站建设
  • nodejs做网站容易被攻击吗网站友情链接怎么添加
  • 做奥数题网站威海做网站
  • 西安网站开发服务多少钱简单企业网站
  • 好看网站的浏览器域名和ip地址有什么关系
  • 才艺多网站建设平台wordpress搜索慢怎么解决
  • php网站开发平台下载网上商城网站开发报告
  • 做单位网站的公司吗搜索引擎营销的模式有哪些
  • 网站定制开发哪家做的好wordpress添加过滤器
  • 福州做网站fjfzwl东道品牌创意集团
  • 十堰百度网站建设如何建设电影会员网站
  • wordpress会员成都seo优化排名公司
  • 电商网站业务流程图自己做的网站竞价好还是单页好
  • 寿光网站优化广东全网推广营销哪家好
  • 宁波网站制作公司推荐做玩网站怎么上传图片
  • 下载 公司网站 程序 需要ftp权限公众号开发商城前景如何
  • 宝安做棋牌网站建设找哪家效益快网站像素大小
  • 做网站需要技术怎么把自己做的网站发布出去
  • 做网站年入多少做外汇的人一般看什么网站