• 一个最简单的基站定位定出自己位置的小程序


    喜欢的童鞋可点击下载:http://www.apkbus.com/android-95636-1-1.html

    主程序:

    jzdw包:

      1 package com.xmb.jzdw;
      2 
      3 import java.text.DateFormat;
      4 import java.text.SimpleDateFormat;
      5 import java.util.Date;
      6 
      7 import android.app.Activity;
      8 import android.location.Location;
      9 import android.os.Bundle;
     10 import android.os.Handler;
     11 import android.os.Message;
     12 import android.util.Log;
     13 import android.widget.ProgressBar;
     14 import android.widget.TextView;
     15 
     16 import com.baidu.mapapi.BMapManager;
     17 import com.baidu.mapapi.GeoPoint;
     18 import com.baidu.mapapi.LocationListener;
     19 import com.baidu.mapapi.MKAddrInfo;
     20 import com.baidu.mapapi.MKBusLineResult;
     21 import com.baidu.mapapi.MKDrivingRouteResult;
     22 import com.baidu.mapapi.MKGeneralListener;
     23 import com.baidu.mapapi.MKPoiResult;
     24 import com.baidu.mapapi.MKSearch;
     25 import com.baidu.mapapi.MKSearchListener;
     26 import com.baidu.mapapi.MKSuggestionResult;
     27 import com.baidu.mapapi.MKTransitRouteResult;
     28 import com.baidu.mapapi.MKWalkingRouteResult;
     29 
     30 
     31 
     32 public class Jzdw extends Activity {      
     33      public TextView myDate, jingdu,mylocation;
     34     public BMapManager mapManager;
     35     private String lng1;
     36     private String lat1;
     37     private String date;
     38     private String Precision;
     39     private Handler handler = new Handler() {
     40         @Override
     41         public void handleMessage(Message msg) {
     42             if (msg.what == 1) {
     43                 Log.i("out","handlemessenge");
     44                 DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     45                 date = format1.format(new Date());
     46                 myDate.setText(date);
     47                 Bundle data = msg.getData();
     48                 // lng1 = data.getString("Longltude");
     49                 lng1 = data.getString("Longltude");
     50                 lat1 = data.getString("Latitude");
     51                 //jzdwaddress = data.getString("jzdwaddress");
     52                 Precision = data.getString("accuracy");
     53                 jingdu.setText(Precision);
     54                 mylocation.setText("经度为:" + lng1 + "\n维度为:" + lat1);
     55                 
     56             }}
     57         };
     58         
     59     @Override  
     60     public void onCreate(Bundle savedInstanceState) {  
     61         super.onCreate(savedInstanceState);  
     62         setContentView(R.layout.main);
     63         myDate=(TextView)findViewById(R.id.t1);
     64         jingdu=(TextView)findViewById(R.id.t3);
     65         mylocation = (TextView) this.findViewById(R.id.t2);
     66         new Thread(new Jzdw1(handler, this)).start();
     67        
     68  /*       
     69         mapManager=new BMapManager(this);
     70         
     71         mapManager.init("471066e711cc4128a04b3e3b1930a422", new MyMKGeneralListener());
     72         
     73         
     74         mapManager.getLocationManager().setNotifyInternal(20, 5);
     75 
     76 
     77         mapManager.getLocationManager().requestLocationUpdates(new MyLocationListener());
     78         
     79         mapManager.start();
     80 */        
     81         
     82 //      mapManager = new BMapManager(this);
     83 //        mapManager.init("EDB67AD764D300895C95ABA02A4DDC58D5485CCD",
     84 //                new MyMKGeneralListener());
     85 //        // 设置通知间隔:iMaxSecond - 最大通知间隔,单位:秒;iMinSecond - 最小通知间隔,单位:秒
     86 //        mapManager.getLocationManager().setNotifyInternal(20, 5);
     87 //
     88 //        mapManager.getLocationManager().requestLocationUpdates(
     89 //                new MyLocationListener());
     90 //        mapManager.start();
     91         
     92     }  
     93   /* 
     94     // 定位自己的位置,只定位一次  
     95     class MyLocationListener implements LocationListener {
     96 
     97         @Override
     98         public void onLocationChanged(Location arg0) {
     99             
    100             double jindu1 = arg0.getLatitude();
    101             double weidu1 = arg0.getLongitude();
    102             
    103             int jindu = (int) (arg0.getLatitude()*1000000);
    104             int weidu = (int) (arg0.getLongitude()*1000000);
    105             mylocation.setText("经度:" + jindu1 + ",纬度:" + weidu1);
    106             System.out.println("1111经度:" + jindu1 + ",111纬度:" + weidu1);
    107             MKSearch search = new MKSearch();
    108             search.init(mapManager, new MyMKSearchListener());
    109             search.reverseGeocode(new GeoPoint(jindu, weidu));
    110         }
    111 
    112     }
    113 
    114     class MyMKSearchListener implements MKSearchListener {
    115 
    116         @Override
    117         public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
    118             if (arg0 == null) {
    119                 mylocation.setText("没有获取想要的位置");
    120             } else {
    121                 GeoPoint point = arg0.geoPt;
    122                 mylocation.setText("地址:" + arg0.strAddr + ",坐标:"
    123                         + point.getLatitudeE6() + "," + point.getLongitudeE6());
    124             }
    125         }
    126 
    127         @Override
    128         public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
    129             // TODO Auto-generated method stub
    130             
    131         }
    132 
    133         @Override
    134         public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
    135             // TODO Auto-generated method stub
    136             
    137         }
    138 
    139         @Override
    140         public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
    141             // TODO Auto-generated method stub
    142             
    143         }
    144 
    145         @Override
    146         public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
    147             // TODO Auto-generated method stub
    148             
    149         }
    150 
    151         @Override
    152         public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
    153             // TODO Auto-generated method stub
    154             
    155         }
    156 
    157         @Override
    158         public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
    159             // TODO Auto-generated method stub
    160             
    161         }
    162 
    163         
    164 
    165     }
    166 
    167     // 常用事件监听,用来处理通常的网络错误,授权验证错误等
    168     class MyMKGeneralListener implements MKGeneralListener {
    169 
    170         @Override
    171         public void onGetNetworkState(int arg0) {
    172 
    173         }
    174 
    175         @Override
    176         public void onGetPermissionState(int arg0) {
    177 
    178         }
    179 
    180     }*/
    181     }

    jzdw1包:

      1 package com.xmb.jzdw;
      2 
      3 
      4 
      5 import com.baidu.mapapi.BMapManager;
      6 import com.baidu.mapapi.GeoPoint;
      7 import com.baidu.mapapi.LocationListener;
      8 import com.baidu.mapapi.MKAddrInfo;
      9 import com.baidu.mapapi.MKBusLineResult;
     10 import com.baidu.mapapi.MKDrivingRouteResult;
     11 import com.baidu.mapapi.MKGeneralListener;
     12 import com.baidu.mapapi.MKPoiResult;
     13 import com.baidu.mapapi.MKSearchListener;
     14 import com.baidu.mapapi.MKSuggestionResult;
     15 import com.baidu.mapapi.MKTransitRouteResult;
     16 import com.baidu.mapapi.MKWalkingRouteResult;
     17 
     18 import android.content.Context;
     19 import android.location.Location;
     20 import android.os.Bundle;
     21 import android.os.Handler;
     22 import android.os.Message;
     23 import android.telephony.TelephonyManager;
     24 import android.util.Log;
     25 
     26 
     27 public class Jzdw1 extends Thread{
     28     private TelephonyManager tm;
     29     private Handler handler;
     30     private Context context;
     31     Double lat;
     32     Double lng;
     33     public BMapManager mapManager;
     34     
     35     public Jzdw1(Handler handler, Context context) {
     36         
     37         this.handler = handler;
     38         this.context = context;
     39         
     40         mapManager=new BMapManager(context); 
     41         Log.i("out","gouzao");
     42       mapManager.init("471066e711cc4128a04b3e3b1930a422", new MyMKGeneralListener()); 
     43         mapManager.getLocationManager().setNotifyInternal(20, 5);
     44     }
     45     
     46     @Override
     47     public void run() {
     48         Log.i("out","run");  
     49         mapManager.getLocationManager().requestLocationUpdates(new MyLocationListener());
     50         mapManager.start();
     51         }
     52     
     53     class MyLocationListener implements LocationListener {
     54 
     55         @Override
     56         public void onLocationChanged(Location arg0) {
     57             Integer jingdu = (int) (arg0.getLatitude()*1000000);
     58             Integer weidu = (int) (arg0.getLongitude()*1000000);
     59             Log.i("out","listener");
     60 //            Integer jingdu = (int) (arg0.getLatitude()*1440000);
     61 //            Integer weidu = (int) (arg0.getLongitude()*1440000);
     62             
     63             
     64             String Accuray=String.valueOf(arg0.getAccuracy());
     65             Bundle mydata=new Bundle();
     66             Message msg=new Message();
     67                mydata.putString("Longltude",String.valueOf(jingdu));
     68                mydata.putString("Latitude",String.valueOf(weidu));
     69                mydata.putString("accuracy",Accuray);    
     70               
     71                msg.setData(mydata);
     72                msg.what=1;
     73                handler.sendMessage(msg);            
     74         }
     75 
     76     }
     77     
     78     class MyMKSearchListener implements MKSearchListener {
     79 
     80         @Override
     81         public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
     82             if (arg0 == null) {
     83                 //tv2.setText("没有获取想要的位置");
     84             } else {
     85                 GeoPoint point = arg0.geoPt;
     86 //                t1.append("\n" + arg0.strAddr);
     87             }
     88         }
     89 
     90         @Override
     91         public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
     92             
     93         }
     94 
     95         @Override
     96         public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
     97             
     98         }
     99 
    100         @Override
    101         public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
    102             
    103         }
    104 
    105         @Override
    106         public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
    107             
    108         }
    109 
    110         @Override
    111         public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
    112             
    113         }
    114 
    115         @Override
    116         public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
    117             
    118         }
    119 
    120 //        @Override
    121 //        public void onGetRGCShareUrlResult(String arg0, int arg1) {
    122 //            // TODO Auto-generated method stub
    123 //            
    124 //        }
    125 
    126     }
    127 
    128     
    129     // 常用事件监听,用来处理通常的网络错误,授权验证错误等
    130     class MyMKGeneralListener implements MKGeneralListener {
    131 
    132         @Override
    133         public void onGetNetworkState(int arg0) {
    134 
    135         }
    136 
    137         @Override
    138         public void onGetPermissionState(int arg0) {
    139 
    140         }
    141 
    142     }
    143 }

    xml文件:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:orientation="vertical"
     4     android:layout_width="fill_parent"
     5     android:layout_height="fill_parent"
     6     >
     7 <TextView 
     8     android:id="@+id/t1" 
     9     android:layout_width="fill_parent" 
    10     android:layout_height="wrap_content" 
    11     android:text="@string/hello"
    12     />
    13  <TextView  
    14      android:id="@+id/t2" 
    15     android:layout_width="fill_parent" 
    16     android:layout_height="wrap_content" 
    17     android:text="@string/hello"
    18     />
    19  <TextView
    20      android:id="@+id/t3"   
    21     android:layout_width="fill_parent" 
    22     android:layout_height="wrap_content" 
    23     android:text="@string/hello"
    24     />
    25 </LinearLayout>

    记得在清单文件中添加权限哦(万能版):

     1 <uses-permission   android:name="android.permission.KILL_BACKGROUND_PROCESSES"></uses-permission>
     2     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
     3     <uses-permission android:name="android.permission.INTERNET"></uses-permission>
     4     <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
     5     <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
     6     <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
     7     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     8     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     9     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    10     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    11     <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>
    12     <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"></uses-permission>
    13     <uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
    14     <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"></uses-permission>
    15     <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
    16     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    17     <uses-permission android:name="android.permission.PERMISSION_NAME" />
    18     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    19     <uses-permission android:name="android.permission.READ_PHONE_STATE" />   
    20     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    21     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    22      <uses-permission android:name="android.permission.VIBRATE" /> 
    23      <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> 
    24      <uses-permission android:name="android.permission.GET_TASKS" /> 
    25      <uses-permission android:name="android.permission.RESTART_PACKAGES" />
    26       <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    27 
    28 <uses-permission android:name="android.permission.DEVICE_POWER" /> 
    29     
    30     
    31     <!-- 在SDCard中创建与删除文件权限 -->
    32     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    33     <!-- 往SDCard写入数据权限 -->
    34     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>   
    35     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    36 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    37 <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    38 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    39 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  
    40 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> 
    41 <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
  • 相关阅读:
    架构设计
    OpenRisc-37-OpenRISC的CPU&core的整体架构分析
    QFrame好像是万能的(可以随意画线,或者图片,放在其它元素之间做点缀,还可OnClick)
    QTableWidget的使用和美工总结
    QTableWidget表格合并若干问题及解决方法
    24篇HTTP博客
    利用VS2005进行dump文件调试(17篇博客)
    英语提问方式
    架构和框架的区别
    数据访问组件性能
  • 原文地址:https://www.cnblogs.com/xmb7/p/2905834.html
Copyright © 2020-2023  润新知