>  기사  >  Java  >  Android 휴대폰은 GPS의 경도 및 위도 주소와 기지국 구현 코드를 얻습니다.

Android 휴대폰은 GPS의 경도 및 위도 주소와 기지국 구현 코드를 얻습니다.

高洛峰
高洛峰원래의
2017-01-07 15:00:241802검색

<?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>

1910bbff392942d09c1248e7effd8f5e

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" />


더 많은 Android 휴대전화에서 GPS를 받을 수 있습니다. 기지국의 위경도 주소 구현 코드 관련 기사는 PHP 중국어 사이트를 주목해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.