易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
实现的第一种 用GPS 定位的 代码
package
com.studio.Android.chp08.ex01;
import
android.app.Activity;
import
android.content.Context;
import
android.content.Intent;
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.widget.Button;
import
android.widget.TextView;
public
class
CurrentLocation
extends
Activity {
/** Called when the activity is first created. */
private
Location local=
null
;
private
int
i=
0
;
/**
* LocationListener 是一个接口
* new LocationListener() 去实例化这个接口
* new LocationListener() {}对接口的方法进行实现
*
* 整体而言是个 成员变量 复制语句,可以放到 前面去
* 这个成员变量 是 LocationListener 类型
*/
private
final
LocationListener locationListener =
new
LocationListener() {
public
void
onLocationChanged(Location location) {
updateWithNewLocation(location);
//地址改变
System.out.println(
"the onLocationChanged"
);
}
public
void
onProviderDisabled(String provider){
updateWithNewLocation(
null
);
//地址失效
System.out.println(
"the onProviderDisabled"
);
}
public
void
onProviderEnabled(String provider){
System.out.println(
"the onProviderEnabled"
);
}
public
void
onStatusChanged(String provider,
int
status,Bundle extras){
System.out.println(
"the onStatusChanged"
);
}
};
public
Location getLocal() {
return
local;
}
public
void
setLocal(Location local) {
this
.local = local;
}
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
//选择布局,用 main 里面的布局方式
Button btv=(Button)findViewById(R.id.GoSecond);
LocationManager locationManager;
String serviceName = Context.LOCATION_SERVICE;
locationManager = (LocationManager)getSystemService(serviceName);
String provider = LocationManager.GPS_PROVIDER;
Location location = locationManager.getLastKnownLocation(provider);
if
(location!=
null
){
this
.setLocal(location);
this
.updateWithNewLocation(location);
}
locationManager.requestLocationUpdates(provider,
2000
,
0
,
locationListener);
//注册了监听器
btv.setOnClickListener(
new
View.OnClickListener(){
public
void
onClick(View v) {
// TODO 实现这个接口的方法
www.linuxidc.com
Intent intent =
new
Intent();
if
(CurrentLocation.
this
.local!=
null
){
//这个是海拔 啊 老兄 double alti=CurrentLocation.this.local.getAltitude();
double
lati = CurrentLocation.
this
.local.getLatitude();
double
logti=CurrentLocation.
this
.local.getLongitude();
intent.putExtra(
"Lati"
,lati);
intent.putExtra(
"Lnti"
, logti);
}
intent.setClass(CurrentLocation.
this
, LocationName.
class
);
startActivity(intent);
}
});
}
private
void
updateWithNewLocation(Location location) {
String latLongString;
TextView myLocationText;
myLocationText = (TextView)findViewById(R.id.myLocationText);
if
(location !=
null
) {
double
lat = location.getLatitude();
double
lng = location.getLongitude();
this
.setLocal(location);
//更新 本类的location
System.out.println(
" the lat is "
+lat+
" the lng is "
+lng);
latLongString =
"第 "
+ ++i+
" 次 更新 纬度是:"
+ lat +
" 经度:"
+ lng;
}
else
{
latLongString =
"无法获取地理信息"
;
}
myLocationText.setText(
"您当前的位置是: "
+latLongString);
}
}
第二个界面 显示 地址解析的界面
manifest
package
com.studio.android.chp08.ex01;
import
java.io.IOException;
import
java.util.List;
import
java.util.Locale;
import
android.app.Activity;
import
android.content.Intent;
import
android.location.Address;
import
android.location.Geocoder;
import
android.os.Bundle;
import
android.widget.TextView;
/**
*
* 得到具体的 地名
www.linuxidc.com
* @author Administrator
*
*/
public
class
LocationName
extends
Activity {
private
String latLongString=
null
;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super
.onCreate(savedInstanceState);
setContentView(R.layout.addressname);
List<Address> addList =
null
;
Geocoder ge =
new
Geocoder(
this
,Locale.CHINA);
TextView myLocationText=(TextView) findViewById(R.id.CityName);
Intent GetIntent=
this
.getIntent();
if
(GetIntent==
null
){
System.out.println(
" it is null"
);
}
else
if
(GetIntent!=
null
){
System.out.println(
"it is not null"
);
double
lati2=GetIntent.getDoubleExtra(
"Lati"
,
119.3090049
);
double
longti2=GetIntent.getDoubleExtra(
"Lnti"
,
26.0972567
);
try
{
addList = ge.getFromLocation(lati2,longti2,
1
);
}
catch
(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if
(addList!=
null
&& addList.size()>
0
){
latLongString=
new
String();
for
(
int
i=
0
; i<addList.size(); i++){
Address ad = addList.get(i);
latLongString +=
" "
;
latLongString +=ad.getAddressLine(
0
)+ad.getAddressLine(
1
)+ad.getAddressLine(
2
);
}
}
myLocationText.setText(
"您当前的位置是: "
+latLongString);
}
}
xml
<?xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<manifest
xmlns:android
=
"http://schemas.android.com/apk/res/android"
package
=
"com.studio.android.chp08.ex01"
android:versionCode
=
"1"
android:versionName
=
"1.0.0"
>
<application
android:icon
=
"@drawable/icon"
android:label
=
"@string/app_name"
>
<activity
android:name
=
".CurrentLocation"
android:label
=
"@string/app_name"
>
<intent-filter>
<action
android:name
=
"android.intent.action.MAIN"
/>
<category
android:name
=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
<activity
android:name
=
".LocationName"
android:label
=
"@string/app_name"
>
</activity>
</application>
<uses-permission
android:name
=
"android.permission.ACCESS_FINE_LOCATION"
/>
<!-- uses-permission 用来权限说明的 -->
</manifest>
address.xml
<?xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:orientation
=
"vertical"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
<TextView
android:id
=
"@+id/CityName"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
/>
<ListView
android:id
=
"@+id/list"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
/>
</LinearLayout>
main.xml
<?xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:orientation
=
"vertical"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
<!-- 开始放组建 -->
<TextView
android:id
=
"@+id/myLocationText"
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"@string/hello"
/>
<Button
android:id
=
"@+id/getLocation"
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"@string/GetLocation"
/>
<Button
android:id
=
"@+id/GoSecond"
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"@string/GoSecond"
/>
</LinearLayout>
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图