广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    android手机获取gps和基站的经纬度地址实现代码

    2018-04-04 08:35:43 次阅读 稿源:互联网
    广告
    代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFD3D7DF"
    android:orientation="vertical" >
    <LinearLayout
    android:id="@+id/location"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dip"
    android:layout_marginLeft="20dip"
    android:layout_marginRight="20dip"
    android:layout_marginTop="20dip"
    android:background="@drawable/bg_frame"
    android:gravity="center_vertical"
    android:orientation="vertical"
    android:paddingBottom="2dip"
    android:paddingLeft="10dip"
    android:paddingRight="10dip"
    android:paddingTop="10dip" >
    <TextView
    android:id="@+id/providerTitle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="获取经纬度:"
    android:textColor="#007979" />
    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <RadioGroup
    android:id="@+id/providerGroup"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <RadioButton
    android:id="@+id/gpsProvide"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="gps"
    android:textColor="#005AB5" />
    <RadioButton
    android:id="@+id/networkProvide"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="基站"
    android:textColor="#005AB5" />
    </RadioGroup>
    <ImageButton
    android:id="@+id/bestLocationProId"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/loction" />
    </LinearLayout>
    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="最佳选择方式:"
    android:textColor="#005AB5" />
    <TextView
    android:id="@+id/locationProId"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#8F4586" />
    </LinearLayout>
    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="经度:"
    android:textColor="#005AB5" />
    <EditText
    android:id="@+id/latEditTextId"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:enabled="false"
    android:textColor="#8F4586" />
    </LinearLayout>
    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="纬度:"
    android:textColor="#005AB5" />
    <EditText
    android:id="@+id/lonEditTextId"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:enabled="false"
    android:textColor="#8F4586" />
    </LinearLayout>
    </LinearLayout>
    </LinearLayout>

    <---activity->
    代码如下:

    package com.talkweb.mobileapp;
    import java.text.DecimalFormat;
    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.view.View;
    import android.view.View.OnClickListener;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.TextView;
    import android.widget.RadioGroup.OnCheckedChangeListener;
    /**
    *
    * @author Mr.Z
    * @time 2012-5-16
    *
    */
    public class LocationappActivity extends Activity {
    private ImageButton btnGetBestLocationPro;
    private EditText txtLat;
    private EditText txtLon;
    private TextView txtLocationPro;
    private LocationManager locationManager;
    private DecimalFormat format;
    private String provider;
    private RadioGroup providerGroup;
    private RadioButton radGps;
    private RadioButton radNetwork;
    private String latStr;
    private String lonStr;
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.main);
    btnGetBestLocationPro = (ImageButton) findViewById(R.id.bestLocationProId);
    btnGetBestLocationPro.setOnClickListener(new GetBestLocationProListener());
    txtLat = (EditText) findViewById(R.id.latEditTextId);
    txtLon = (EditText) findViewById(R.id.lonEditTextId);
    txtLocationPro = (TextView) findViewById(R.id.locationProId);
    format = new DecimalFormat("#.000000");
    locationManager = (LocationManager) LocationappActivity.this.getSystemService(Context.LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setPowerRequirement(Criteria.POWER_LOW);
    criteria.setAltitudeRequired(false);
    criteria.setSpeedRequired(false);
    criteria.setCostAllowed(false);
    provider = locationManager.getBestProvider(criteria, false);
    txtLocationPro.setText(provider);
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new TestLocationListener());
    providerGroup = (RadioGroup) findViewById(R.id.providerGroup);
    radGps = (RadioButton) findViewById(R.id.gpsProvide);
    radNetwork = (RadioButton) findViewById(R.id.networkProvide);
    providerGroup.setOnCheckedChangeListener(new LocationProvideCheckedlistener());
    if (provider.equals(LocationManager.GPS_PROVIDER)) {
    System.out.println("gps");
    radGps.setSelected(true);
    radGps.setChecked(true);
    } else if (provider.equals(LocationManager.NETWORK_PROVIDER)) {
    System.out.println("network");
    radNetwork.setSelected(true);
    radNetwork.setChecked(true);
    }
    }
    private class GetBestLocationProListener implements OnClickListener {
    @Override
    public void onClick(View v) {
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setPowerRequirement(Criteria.POWER_LOW);
    criteria.setAltitudeRequired(false);
    criteria.setSpeedRequired(false);
    criteria.setCostAllowed(false);
    String provider = locationManager.getBestProvider(criteria, false);
    txtLocationPro.setText(provider);
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new TestLocationListener());
    }
    }
    private class TestLocationListener implements LocationListener {
    @Override
    public void onLocationChanged(Location location) {
    double lat = location.getLatitude();
    double lon = location.getLongitude();
    latStr = format.format(lat);
    lonStr = format.format(lon);
    txtLat.setText(latStr);
    txtLon.setText(lonStr);
    }
    @Override
    public void onProviderDisabled(String provider) {
    }
    @Override
    public void onProviderEnabled(String provider) {
    }
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
    }
    private class LocationProvideCheckedlistener implements OnCheckedChangeListener {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
    if (checkedId == radGps.getId()) {
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new TestLocationListener());
    } else if (checkedId == radNetwork.getId()) {
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new TestLocationListener());
    }
    }
    }
    }

    权限:
    代码如下:

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.BLUETOOTH" />

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告