一个最简单的基站定位定出自己位置的小程序
2013-02-06 14:34
507 查看
喜欢的童鞋可点击下载:http://www.apkbus.com/android-95636-1-1.html
主程序:
jzdw包:
jzdw1包:
xml文件:
记得在清单文件中添加权限哦(万能版):
主程序:
jzdw包:
package com.xmb.jzdw; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import android.app.Activity; import android.location.Location; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.widget.ProgressBar; import android.widget.TextView; import com.baidu.mapapi.BMapManager; import com.baidu.mapapi.GeoPoint; import com.baidu.mapapi.LocationListener; import com.baidu.mapapi.MKAddrInfo; import com.baidu.mapapi.MKBusLineResult; import com.baidu.mapapi.MKDrivingRouteResult; import com.baidu.mapapi.MKGeneralListener; import com.baidu.mapapi.MKPoiResult; import com.baidu.mapapi.MKSearch; import com.baidu.mapapi.MKSearchListener; import com.baidu.mapapi.MKSuggestionResult; import com.baidu.mapapi.MKTransitRouteResult; import com.baidu.mapapi.MKWalkingRouteResult; public class Jzdw extends Activity { public TextView myDate, jingdu,mylocation; public BMapManager mapManager; private String lng1; private String lat1; private String date; private String Precision; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { Log.i("out","handlemessenge"); DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); date = format1.format(new Date()); myDate.setText(date); Bundle data = msg.getData(); // lng1 = data.getString("Longltude"); lng1 = data.getString("Longltude"); lat1 = data.getString("Latitude"); //jzdwaddress = data.getString("jzdwaddress"); Precision = data.getString("accuracy"); jingdu.setText(Precision); mylocation.setText("经度为:" + lng1 + "\n维度为:" + lat1); }} }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myDate=(TextView)findViewById(R.id.t1); jingdu=(TextView)findViewById(R.id.t3); mylocation = (TextView) this.findViewById(R.id.t2); new Thread(new Jzdw1(handler, this)).start(); /* mapManager=new BMapManager(this); mapManager.init("471066e711cc4128a04b3e3b1930a422", new MyMKGeneralListener()); mapManager.getLocationManager().setNotifyInternal(20, 5); mapManager.getLocationManager().requestLocationUpdates(new MyLocationListener()); mapManager.start(); */ // mapManager = new BMapManager(this); // mapManager.init("EDB67AD764D300895C95ABA02A4DDC58D5485CCD", // new MyMKGeneralListener()); // // 设置通知间隔:iMaxSecond - 最大通知间隔,单位:秒;iMinSecond - 最小通知间隔,单位:秒 // mapManager.getLocationManager().setNotifyInternal(20, 5); // // mapManager.getLocationManager().requestLocationUpdates( // new MyLocationListener()); // mapManager.start(); } /* // 定位自己的位置,只定位一次 class MyLocationListener implements LocationListener { @Override public void onLocationChanged(Location arg0) { double jindu1 = arg0.getLatitude(); double weidu1 = arg0.getLongitude(); int jindu = (int) (arg0.getLatitude()*1000000); int weidu = (int) (arg0.getLongitude()*1000000); mylocation.setText("经度:" + jindu1 + ",纬度:" + weidu1); System.out.println("1111经度:" + jindu1 + ",111纬度:" + weidu1); MKSearch search = new MKSearch(); search.init(mapManager, new MyMKSearchListener()); search.reverseGeocode(new GeoPoint(jindu, weidu)); } } class MyMKSearchListener implements MKSearchListener { @Override public void onGetAddrResult(MKAddrInfo arg0, int arg1) { if (arg0 == null) { mylocation.setText("没有获取想要的位置"); } else { GeoPoint point = arg0.geoPt; mylocation.setText("地址:" + arg0.strAddr + ",坐标:" + point.getLatitudeE6() + "," + point.getLongitudeE6()); } } @Override public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) { // TODO Auto-generated method stub } @Override public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) { // TODO Auto-generated method stub } @Override public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) { // TODO Auto-generated method stub } @Override public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) { // TODO Auto-generated method stub } @Override public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) { // TODO Auto-generated method stub } } // 常用事件监听,用来处理通常的网络错误,授权验证错误等 class MyMKGeneralListener implements MKGeneralListener { @Override public void onGetNetworkState(int arg0) { } @Override public void onGetPermissionState(int arg0) { } }*/ }
jzdw1包:
package com.xmb.jzdw; import com.baidu.mapapi.BMapManager; import com.baidu.mapapi.GeoPoint; import com.baidu.mapapi.LocationListener; import com.baidu.mapapi.MKAddrInfo; import com.baidu.mapapi.MKBusLineResult; import com.baidu.mapapi.MKDrivingRouteResult; import com.baidu.mapapi.MKGeneralListener; import com.baidu.mapapi.MKPoiResult; import com.baidu.mapapi.MKSearchListener; import com.baidu.mapapi.MKSuggestionResult; import com.baidu.mapapi.MKTransitRouteResult; import com.baidu.mapapi.MKWalkingRouteResult; import android.content.Context; import android.location.Location; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.telephony.TelephonyManager; import android.util.Log; public class Jzdw1 extends Thread{ private TelephonyManager tm; private Handler handler; private Context context; Double lat; Double lng; public BMapManager mapManager; public Jzdw1(Handler handler, Context context) { this.handler = handler; this.context = context; mapManager=new BMapManager(context); Log.i("out","gouzao"); mapManager.init("471066e711cc4128a04b3e3b1930a422", new MyMKGeneralListener()); mapManager.getLocationManager().setNotifyInternal(20, 5); } @Override public void run() { Log.i("out","run"); mapManager.getLocationManager().requestLocationUpdates(new MyLocationListener()); mapManager.start(); } class MyLocationListener implements LocationListener { @Override public void onLocationChanged(Location arg0) { Integer jingdu = (int) (arg0.getLatitude()*1000000); Integer weidu = (int) (arg0.getLongitude()*1000000); Log.i("out","listener"); // Integer jingdu = (int) (arg0.getLatitude()*1440000); // Integer weidu = (int) (arg0.getLongitude()*1440000); String Accuray=String.valueOf(arg0.getAccuracy()); Bundle mydata=new Bundle(); Message msg=new Message(); mydata.putString("Longltude",String.valueOf(jingdu)); mydata.putString("Latitude",String.valueOf(weidu)); mydata.putString("accuracy",Accuray); msg.setData(mydata); msg.what=1; handler.sendMessage(msg); } } class MyMKSearchListener implements MKSearchListener { @Override public void onGetAddrResult(MKAddrInfo arg0, int arg1) { if (arg0 == null) { //tv2.setText("没有获取想要的位置"); } else { GeoPoint point = arg0.geoPt; // t1.append("\n" + arg0.strAddr); } } @Override public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) { } @Override public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) { } @Override public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) { } @Override public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) { } @Override public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) { } @Override public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) { } // @Override // public void onGetRGCShareUrlResult(String arg0, int arg1) { // // TODO Auto-generated method stub // // } } // 常用事件监听,用来处理通常的网络错误,授权验证错误等 class MyMKGeneralListener implements MKGeneralListener { @Override public void onGetNetworkState(int arg0) { } @Override public void onGetPermissionState(int arg0) { } } }
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/t1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <TextView android:id="@+id/t2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <TextView android:id="@+id/t3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
记得在清单文件中添加权限哦(万能版):
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"></uses-permission> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> <uses-permission android:name="android.permission.SEND_SMS"></uses-permission> <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission> <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"></uses-permission> <uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"></uses-permission> <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.PERMISSION_NAME" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.RESTART_PACKAGES" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.DEVICE_POWER" /> <!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
相关文章推荐
- 一个最简单的gps定出自己位置的小程序,监听位置变化
- 自己动手写一个简单的Shell之二:运行程序
- C-自己写的一个最简单的班级信息统计程序
- android基站定位程序获取地理位置
- 简单基站定位程序
- 【Android开发笔记】4.简单基站定位程序
- symbian下利用基站实现定位,显示地图中自己的位置
- 自己动手弄基于QT5和directx11的简单粒子编辑器v0.1(一个编辑器,一个更新器,一个linux服务端程序)
- NET简单的一个画图程序 使用简单 自己可以相关自己的内容进行配置就可以使用了
- 简单基站定位程序
- 简单基站定位程序
- NET简单的一个画图程序 使用简单 自己可以相关自己的内容进行配置就可以使用了
- 使用gtype构造的一个简单学生管理程序其他属性自己加
- 简单基站定位程序
- 自己动手编写一个简单的U盘杀毒程序
- 赛码网,简单计算,用C语言自己实现的一个程序,仅供参考
- android基站定位程序获取地理位置
- 一个简单的虹膜定位程序
- Android 简单基站定位程序
- 构建自己的代码库及软件开发不能是加工作坊--及一个简单的Linux C程序开发框架—linux-dev-framework