DBMNG数据库管理与应用

科学是实事求是的学问,来不得半点虚假。
当前位置:首页 > SQLite > 管理工具

Android手机通过GPS定位

package com.android.antking.gps;

import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
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 GPSActivity extends Activity {
    //声明位置管理对象
  private LocationManager locationManager;
  //声明位置监听对象
  private LocationListener locationListener;
  //声明字符串变量
  String locationprovider;
  //声明显示文本视图组建
  private TextView textview;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //获得文本视图
        textview = (TextView)this.findViewById(R.id.textView1);
        try{
         //新建Criteria类
         Criteria locationcriteria = new Criteria();
         //设置精确精度
         locationcriteria.setAccuracy(Criteria.ACCURACY_FINE);
         //不提供海拔高度信息
         locationcriteria.setAltitudeRequired(false);
         //不提供方向信息
         locationcriteria.setBearingRequired(false);
         //允许运营商计费
         locationcriteria.setCostAllowed(true);
         //设置电池消耗为低耗费
         locationcriteria.setPowerRequirement(Criteria.POWER_LOW);
         //使用getSystemService()方法获得位置管理器对象
         locationManager
         =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
         //locationManager.setTestProviderEnabled("gps", true);
         Toast.makeText(GPSActivity.this, "getSystemService", Toast.LENGTH_SHORT).show();
         //检查gps功能开启
         if(checkgps()){
          locationprovider
          =locationManager.getBestProvider(locationcriteria, true);
          Log.d("provider", locationprovider);
          //注册位置监听器
          locationListener = new MyLocationListener();
          locationManager.requestLocationUpdates(locationprovider, 1000, 0,locationListener);
         }
        }catch(Exception e){
         Toast.makeText(GPSActivity.this, "异常错误"+e.toString(),Toast.LENGTH_LONG).show();
        }
      
    }
    private class MyLocationListener implements LocationListener{
         /**
          * 若位置发生变化,onLocationChanged方法被调用
          */
  @Override
  public void onLocationChanged(Location location) {
   // TODO Auto-generated method stub
   Log.i("位置发生变化", "Invoke");
   if(location != null){
    //获得经度
    String latitude = Double.toString(location.getLatitude());//经度
    
    //获得纬度
   
      String longitude = Double.toString(location.getLongitude());//纬度
    //在文本框中显示
      textview = (TextView)GPSActivity.this.findViewById(R.id.textView1);
    textview.setText("经度:"+longitude+"纬度"+latitude);
   }
   //locationManager.removeUpdates(this);
   //locationManager.setTestProviderEnabled("gps", true);
  }
         //若屏蔽提供商,该方法被调用
  
  @Override
  public void onProviderDisabled(String provider) {
   // TODO Auto-generated method stub
   Log.i("屏蔽提供商", "Invode");
  }
        //若激活提供商,该方法被调用
  @Override
  public void onProviderEnabled(String provider) {
   // TODO Auto-generated method stub
   Log.i("激活提供商", "Invode");
  }
       //若状态发生变化,该方法被调用
  @Override
  public void onStatusChanged(String provider, int status, Bundle extras) {
   // TODO Auto-generated method stub
   Log.i("状态发生变化", "Invode");
  }
     
    }
    private boolean checkgps(){
     boolean providerEnabled
      = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
     //若被激活,则返回真值
     if(providerEnabled ==true){
      Toast.makeText(this, "Gps模块活动正常", Toast.LENGTH_SHORT).show();
      return true;
     }
     else{
      Toast.makeText(this, "请开启GPS", Toast.LENGTH_SHORT);
      return false;
     }
     
    }
  
}

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.antking.gps"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".GPSActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

 

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号