Android获取手机位置的实现代码_Android

本文实例为大家分享了Android获取手机位置的方法,供大家参考,具体内容如下

1、项目Src下创建...service包,然后新建GPSService类

 package com.zebra.mobilesafe.service;
 import java.io.IOException;
 import java.io.InputStream; 

 import android.app.Service;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.SharedPreferences.Editor;
 import android.location.Criteria;
 import android.location.Location;
 import android.location.LocationListener;
 import android.location.LocationManager;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.util.Log; 

 public class GPSService extends Service {
  private static final String TAG = "GPSService";
  // 用到位置服务
  private LocationManager lm;
  private MyLocationListener listener; 

  @Override
  public IBinder onBind(Intent intent) {
   // TODO Auto-generated method stub
   return null;
  } 

  @Override
  public void onCreate() {
   // TODO Auto-generated method stub
   super.onCreate();
   Log.i(TAG, "====进入GPS==");
   lm = (LocationManager) getSystemService(LOCATION_SERVICE); 

   // List<String> provider = lm.getAllProviders();
   // for(String l: provider){
   // System.out.println(l);
   // }
   listener = new MyLocationListener();
   // 注册监听位置服务
   // 给位置提供者设置条件
   Criteria criteria = new Criteria();
   criteria.setAccuracy(Criteria.ACCURACY_FINE); 

   // 设置参数细化:
   // criteria.setAccuracy(Criteria.ACCURACY_FINE);//设置为最大精度
   // criteria.setAltitudeRequired(false);//不要求海拔信息
   // criteria.setBearingRequired(false);//不要求方位信息
   // criteria.setCostAllowed(true);//是否允许付费
   // criteria.setPowerRequirement(Criteria.POWER_LOW);//对电量的要求 

   String proveder = lm.getBestProvider(criteria, true);
   lm.requestLocationUpdates(proveder, 0, 0, listener);
  } 

  @Override
  public void onDestroy() {
   super.onDestroy();
   // 取消监听位置服务
   lm.removeUpdates(listener);
   listener = null;
  } 

  class MyLocationListener implements LocationListener { 

   /**
    * 当位置改变的时候回调
    */ 

   @Override
   public void onLocationChanged(Location location) {
    String longitude = "j:" + location.getLongitude() + "\n";
    String latitude = "w:" + location.getLatitude() + "\n";
    String accuracy = "a" + location.getAccuracy() + "\n";
    // 发短信给安全号码 

    // 把标准的GPS坐标转换成火星坐标
 //   InputStream is;
 //   try {
 //    is = getAssets().open("axisoffset.dat");
 //    ModifyOffset offset = ModifyOffset.getInstance(is);
 //    PointDouble double1 = offset.s2c(new PointDouble(location
 //      .getLongitude(), location.getLatitude()));
 //    longitude ="j:" + offset.X+ "\n";
 //    latitude = "w:" +offset.Y+ "\n";
 //
 //   } catch (IOException e) {
 //    // TODO Auto-generated catch block
 //    e.printStackTrace();
 //   } catch (Exception e) {
 //    // TODO Auto-generated catch block
 //    e.printStackTrace();
 //   } 

    SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
    Editor editor = sp.edit();
    editor.putString("lastlocation", longitude + latitude + accuracy);
    editor.commit(); 

   } 

   /**
    * 当状态发生改变的时候回调 开启--关闭 ;关闭--开启
    */
   @Override
   public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub 

   } 

   /**
    * 某一个位置提供者可以使用了
    */
   @Override
   public void onProviderEnabled(String provider) {
    // TODO Auto-generated method stub 

   } 

   /**
    * 某一个位置提供者不可以使用了
    */
   @Override
   public void onProviderDisabled(String provider) {
    // TODO Auto-generated method stub 

   } 

  } 

 } 

2、AndroidManiFest.xml添加类

注意这个是service类型,很容易出错,即<service  android:name="com.zebra.mobilesafe.service.GPSService"/>

3、添加权限

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

4、根据操作启动服务

 Intent i = new Intent(context,GPSService.class);
 context.startService(i); 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
手机位置
android 截屏代码实现、android 录屏实现代码、android vpn 代码实现、android 代码实现布局、android 代码实现圆角,以便于您获取更多的相关知识。

时间: 2024-11-17 02:28:29

Android获取手机位置的实现代码_Android的相关文章

Android获取手机位置的实现代码

本文实例为大家分享了Android获取手机位置的方法,供大家参考,具体内容如下 1.项目Src下创建...service包,然后新建GPSService类 package com.zebra.mobilesafe.service; import java.io.IOException; import java.io.InputStream; import android.app.Service; import android.content.Intent; import android.cont

Android获取当前位置的经纬度数据_Android

现在有这么一个需求:开启一个Service服务,获取当前位置的经纬度数据,将获取的数据以广播的方式发送出去,注册广播的Activity接收广播信息,并将接收到的数据在当前Activity显示,如果当前位置发生变化,经纬度数据改变,获取改变后的经纬度数据,通过Handler发送消息,更新UI界面,显示更新后的内容,请问这样子的Demo该如何实现? LocationTool获取当前位置信息 Android手机获取当前位置的方式:GPS定位,WIFI定位,基站定位,当前Demo使用GPS卫星定位,在L

Android获取手机通话记录的方法_Android

Android如何获取手机通话记录,本文为大家揭晓. 获取手机通话记录流程: 1. 获取ContentResolver; ContentResolver resolver = getContentResolver(); 2.resolver.query(*); 需要传入通话记录的URI:CallLog.Calls.CONTENT_URI 3.对查询得到的Cursor进行数据获取. 主要代码如下: MainActivity.java package com.noonecode.contentres

Android获取ROOT权限的实例代码_Android

获取Android的ROOT权限其实很简单,只要在Runtime下执行命令"su"就可以了. 复制代码 代码如下: // 获取ROOT权限public void get_root(){     if (is_root()){        Toast.makeText(mCtx, "已经具有ROOT权限!", Toast.LENGTH_LONG).show();    }    else{        try{            progress_dialog

android获取屏幕像素思路及代码_Android

复制代码 代码如下: <SPAN style="FONT-SIZE: 18px">private void alertScreenDialog() { DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); String optStr = "手机屏幕分辨率为: "+dm.widthPixels+" x &qu

android获取手机唯一标识的方法_Android

复制代码 代码如下: import android.provider.Settings.Secure; private String android_id = Secure.getString(getContext().getContentResolver(),Secure.ANDROID_ID); UUID deviceUuid = new UUID(androidId.hashCode(), ((long)tmDevice.hashCode() << 32) | tmSerial.hash

Android获取手机的版本号等信息的代码_Android

本文实例分享了Android获取手机系统版本等信息的方法,供大家参考,具体内容如下: 第一种代码: String phoneInfo = "Product: " + android.os.Build.PRODUCT; phoneInfo += ", CPU_ABI: " + android.os.Build.CPU_ABI; phoneInfo += ", TAGS: " + android.os.Build.TAGS; phoneInfo +=

Android 获取手机联系人实例代码详解_Android

我的风格,废话不多说了,直接给大家贴代码了. 具体代码如下所示: package com.org.demo.demo; import com.org.wangfeng.R; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Butt

Android获取手机SIM卡运营商信息的方法_Android

本文实例讲述了Android获取手机SIM卡运营商信息的方法,对于Android程序设计有非常实用的价值.分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: /** * 获取SIM卡运营商 * * @param context * @return */ public static String getOperators(Context context) { TelephonyManager tm = (TelephonyManager) context .getSystemServic