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

网站用axure做的rp格式百度指数app

网站用axure做的rp格式,百度指数app,上传到网站空间,程序员做网站文章目录 Android 系统定位和高德定位系统定位工具类封装LocationManager使用 高德定位封装高德地图使用 Android 系统定位和高德定位 系统定位 工具类 public class LocationUtils {public static final int REQUEST_LOCATION 0xa1;/*** 判断定位服务是否开启*/public sta…

文章目录

  • Android 系统定位和高德定位
    • 系统定位
      • 工具类
      • 封装LocationManager
      • 使用
    • 高德定位
      • 封装高德地图
      • 使用

Android 系统定位和高德定位

系统定位

工具类

public class LocationUtils {public static final int REQUEST_LOCATION = 0xa1;/*** 判断定位服务是否开启*/public static boolean isOpenLocationServer(Context context) {int locationMode = 0;try {locationMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE);} catch (Settings.SettingNotFoundException e) {e.printStackTrace();return false;}return locationMode != Settings.Secure.LOCATION_MODE_OFF;}/*** 判断GPS是否可用*/public static boolean isGPSEnabled(Context context) {LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);return manager.isProviderEnabled(LocationManager.GPS_PROVIDER);}/*** 判断定位是否可用*/public static boolean isLocationEnabled(Context context) {LocationManager manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);return manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) || manager.isProviderEnabled(LocationManager.GPS_PROVIDER);}/*** 开启位置服务*/public static void openLocation(Activity activity) {activity.startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), REQUEST_LOCATION);}/*** 开启位置服务*/public static void openLocation(Fragment fragment) {fragment.startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), REQUEST_LOCATION);}}

封装LocationManager

public class LocationHelper {private static OnLocationChangeListener mOnLocationChangeListener;private static MyLocationListener mLocationListener;private static LocationManager mLocationManager;private static String mProvider;/*** 注册*/public static void registerLocation(Context context, @Nullable OnLocationChangeListener listener) {mOnLocationChangeListener = listener;mLocationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);mProvider = mLocationManager.getBestProvider(getCriteria(), true);Location lastKnownLocation = mLocationManager.getLastKnownLocation(mProvider);if (listener != null && lastKnownLocation != null) {listener.onLastKnownLocation(lastKnownLocation);}mLocationListener = new MyLocationListener();startLocation();}/*** 开始定位*/public static void startLocation() {// 第二个参数:更新定位的时间间隔,第三个参数:更新定位的距离范围mLocationManager.requestLocationUpdates(mProvider, 0, 0, mLocationListener);}/*** 停止定位*/public static void stopLocation() {mLocationManager.removeUpdates(mLocationListener);}/*** 设置定位参数** @return {@link Criteria}*/private static Criteria getCriteria() {Criteria criteria = new Criteria();// 设置定位精确度 Criteria.ACCURACY_COARSE比较粗略,Criteria.ACCURACY_FINE则比较精细criteria.setAccuracy(Criteria.ACCURACY_FINE);// 设置是否要求速度criteria.setSpeedRequired(false);// 设置是否允许运营商收费criteria.setCostAllowed(false);// 设置是否需要方位信息criteria.setBearingRequired(false);// 设置是否需要海拔信息criteria.setAltitudeRequired(false);// 设置对电源的需求criteria.setPowerRequirement(Criteria.POWER_LOW);return criteria;}/*** 取消注册*/public static void unregisterLocation() {if (mLocationManager != null) {if (mLocationListener != null) {mLocationManager.removeUpdates(mLocationListener);}}mLocationManager = null;mLocationListener = null;mOnLocationChangeListener = null;}public interface OnLocationChangeListener {void onLastKnownLocation(Location location);void onLocationChanged(Location location);}public static class MyLocationListener implements LocationListener {@Overridepublic void onLocationChanged(@NonNull Location location) {if (mOnLocationChangeListener != null) {mOnLocationChangeListener.onLocationChanged(location);}}}
}
public class LocationService extends Service {public static void actionStart(Context context) {context.startService(new Intent(context, LocationService.class));}public static void actionStop(Context context) {context.stopService(new Intent(context, LocationService.class));}@SuppressLint("MissingPermission")@Overridepublic void onCreate() {super.onCreate();new Thread(() -> {Looper.prepare();LocationHelper.registerLocation(getApplicationContext(), new LocationHelper.OnLocationChangeListener() {@Overridepublic void onLastKnownLocation(Location location) {if (location != null) {Log.e("TAG", "onLastKnownLocation= " + location);}}@Overridepublic void onLocationChanged(Location location) {if (location != null) {Log.e("TAG", "onLocationChanged= " + location);stopSelf();}}});Looper.loop();}).start();}@Nullable@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onDestroy() {super.onDestroy();LocationHelper.unregisterLocation();}
}

使用

// 开始定位
LocationService.actionStart(MainActivity.this, "start");// 停止定位
LocationService.actionStart(MainActivity.this, "stop");// 单次定位
LocationService.actionStart(MainActivity.this, "once");

高德定位

封装高德地图

public class GDLocationHelper {private static AMapLocationClient locationClient;private static OnLocationChangeListener mOnLocationChangeListener;private static MyLocationListener mListener;public static void register(Context context, @Nullable OnLocationChangeListener onLocationChangeListener) {mOnLocationChangeListener = onLocationChangeListener;initLocation(context);}private static void initLocation(Context context) {locationClient = new AMapLocationClient(context);AMapLocation lastKnownLocation = locationClient.getLastKnownLocation();if (lastKnownLocation != null && mOnLocationChangeListener != null) {mOnLocationChangeListener.onLastKnownLocation(lastKnownLocation);}// 设置定位监听mListener = new MyLocationListener();locationClient.setLocationListener(mListener);}public static void startLocation() {locationClient.stopLocation();locationClient.setLocationOption(getDefaultOption(false));locationClient.startLocation();}public static void startOnceLocation() {locationClient.stopLocation();locationClient.setLocationOption(getDefaultOption(true));locationClient.startLocation();}public static void stopLocation() {locationClient.stopLocation();}public static void unregister() {stopLocation();locationClient.onDestroy();locationClient = null;mOnLocationChangeListener = null;mListener = null;}public static AMapLocationClientOption getDefaultOption(boolean isOnce) {AMapLocationClientOption mOption = new AMapLocationClientOption();mOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//可选,设置定位模式,可选的模式有高精度、仅设备、仅网络。默认为高精度模式
//        mOption.setGpsFirst(false);//可选,设置是否gps优先,只在高精度模式下有效。默认关闭
//        mOption.setHttpTimeOut(30000);//可选,设置网络请求超时时间。默认为30秒。在仅设备模式下无效
//        mOption.setNeedAddress(true);//可选,设置是否返回逆地理地址信息。默认是trueif (isOnce) {mOption.setOnceLocation(true);//可选,设置是否单次定位。默认是falsemOption.setOnceLocationLatest(true);//可选,设置是否等待wifi刷新,默认为false.如果设置为true,会自动变为单次定位,持续定位时不要使用} else {mOption.setOnceLocation(false);mOption.setInterval(2_000);//可选,设置定位间隔。默认为2秒}mOption.setMockEnable(false); //设置是否允许模拟位置
//        AMapLocationClientOption.setLocationProtocol(AMapLocationClientOption.AMapLocationProtocol.HTTP);//可选, 设置网络请求的协议。可选HTTP或者HTTPS。默认为HTTP
//        mOption.setSensorEnable(false);//可选,设置是否使用传感器。默认是falsemOption.setWifiScan(true); //可选,设置是否开启wifi扫描。默认为true,如果设置为false会同时停止主动刷新,停止以后完全依赖于系统刷新,定位位置可能存在误差mOption.setLocationCacheEnable(true); //可选,设置是否使用缓存定位,默认为true
//        mOption.setGeoLanguage(AMapLocationClientOption.GeoLanguage.DEFAULT);//可选,设置逆地理信息的语言,默认值为默认语言(根据所在地区选择语言)return mOption;}public static class MyLocationListener implements AMapLocationListener {@Overridepublic void onLocationChanged(AMapLocation aMapLocation) {if (mOnLocationChangeListener != null) {mOnLocationChangeListener.onLocationChanged(aMapLocation);}}}public interface OnLocationChangeListener {void onLastKnownLocation(AMapLocation location);void onLocationChanged(AMapLocation location);}
}
public class GDLocationService extends Service {private volatile boolean isOnce = false;public static void actionStart(Context context) {actionStart(context, null);}public static void actionStart(Context context, String command) {context.startService(new Intent(context, GDLocationService.class).putExtra("command", command));}public static void actionStop(Context context) {context.stopService(new Intent(context, GDLocationService.class));}@Overridepublic void onCreate() {super.onCreate();GDLocationHelper.register(getApplicationContext(), new GDLocationHelper.OnLocationChangeListener() {@Overridepublic void onLastKnownLocation(AMapLocation location) {if (location != null) {Log.e("TAG", "onLastKnownLocation= " + location.toString());}}@Overridepublic void onLocationChanged(AMapLocation location) {if (location != null) {Log.e("TAG", "onLocationChanged= " + location.toString());if (isOnce) {stopSelf();}}}});}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {String command = intent.getStringExtra("command");switch (command) {case "once":isOnce = true;GDLocationHelper.startOnceLocation();break;case "stop":GDLocationHelper.stopLocation();break;case "start":default:isOnce = false;GDLocationHelper.startLocation();break;}return super.onStartCommand(intent, flags, startId);}@Nullable@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onDestroy() {super.onDestroy();GDLocationHelper.unregister();Log.e("TAG", "onDestroy");}
}

使用

// 开始定位   
GDLocationService.actionStart(MainActivity.this, "start");// 停止定位
GDLocationService.actionStart(MainActivity.this, "stop");// 单次定位
GDLocationService.actionStart(MainActivity.this, "once");
http://www.yidumall.com/news/53449.html

相关文章:

  • 网站建设公司怎么选择站长之家app下载
  • 宁夏网站开发公司搜索指数分析
  • 晨雷文化传媒网站建设北京千锋教育培训机构怎么样
  • 陕西网络开发公司网站全网推广平台有哪些
  • 个人网站免费申请郑州seo关键词
  • 织梦xml网站地图免费的外链网站
  • 网站建设古典风格搜索引擎网站优化推广
  • 设计培训网站建设企业邮箱哪个好
  • 长沙网站开发长沙网站建设搜索引擎优化的五个方面
  • 两学一做注册网站吗表白网站制作
  • wordpress模板函数厦门seo屈兴东
  • 网站 廉政建设 板块企业网络营销策略
  • 胶南做网站广东seo教程
  • 找人做网站需要注意什么传播易广告投放平台
  • 六安人论坛招聘网网站seo快速
  • 无锡网站建设设计公司百度竞价多少钱一个点击
  • 重庆旅游网站建设百度账号安全中心官网
  • 单县网站开发小说推广平台有哪些
  • saas 平台架构做网站磁力最好用的搜索引擎
  • 网站建设业务怎么做中国网站访问量排行
  • 化妆品网站设计模板谷歌seo价格
  • 深圳12个区排名百度seo排名技术必不可少
  • 国外最新创意产品网站百度推广区域代理
  • 泰州市网站建设制作营销推广计划
  • 网站模板怎么改厦门seo网站优化
  • 网站二级域名怎么解析以图搜图
  • 吴江做网站北京seo公司wyhseo
  • 广州网站建设团队今日足球比赛分析推荐
  • 宠物网站建设可以免费打广告的网站
  • 360网站建设搜索最有效的推广方法