android系统开发一个定位系统难不难

javacc 发布于 2012/03/14 17:44
阅读 2K+
收藏 3
就是想开发一个定位系统,每天到坐公交到站后他会像闹钟一样提醒我,这个难不难啊?有没有谁有定位的代码可以用的发给我谢谢啦
加载中
1
农民二狗
农民二狗
package com.mnc.location;

import android.app.Service;
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.Binder;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.util.Log;

/**
 * GPS�㲥
 * @author mnc
 */
public class GPSLocationService extends Service {
	
	private LocationManager locationManager;
	private Location location;
	private String provider;
	
	private double latitude ;
	private double longitude;
	
	private GetLocationHandler getLocationHandler;
	private UpdateLocationHandler updateLocationHandler;
	private LocationListener locationListener;
	private GPSLocationBinder gPSLocationBinder = new GPSLocationBinder();

	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		Criteria criteria = new Criteria(); 
		//�����õĶ�λЧ�� 
		criteria.setAccuracy(Criteria.ACCURACY_FINE); 
		criteria.setAltitudeRequired(false); 
		criteria.setBearingRequired(false); 
		criteria.setCostAllowed(false);
		criteria.setPowerRequirement(Criteria.POWER_LOW); //ʹ��ʡ��ģʽ 
		provider = locationManager.getBestProvider(criteria, true); //��õ�ǰ��λ���ṩ�� 
		location = locationManager.getLastKnownLocation(provider);
		
		if(location==null) {
			getLocationHandler = new GetLocationHandler();
			new GetLocationThread().start(); 
		}
		
		//�����û����ı�
		updateLocationHandler = new UpdateLocationHandler();
		new UpdateLocationThread().start(); 
		return gPSLocationBinder;
	}
	
	/****���Location����***************************************************************/
	private class GetLocationHandler extends Handler {
		public void handleMessage(Message msg) {
			if(msg.obj != null) {
				location = (Location)msg.obj;
				latitude = location.getLatitude()* 1E6; // ����
				longitude = location.getLongitude()* 1E6; // �
//				double altitude = location.getAltitude(); // ����
				
				//����һ��intent  
				Intent intent = new Intent("GPSLocationService");
				intent.putExtra("latitude",latitude);
				intent.putExtra("longitude",longitude);
				sendBroadcast(intent);  //�㲥��ȥ  
			}
		}
	}
	private class GetLocationThread extends Thread{
		public void run(){
			while(location == null) location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
			Message messagee = getLocationHandler.obtainMessage();
			messagee.obj = location;
			messagee.sendToTarget();
		}
	}
	/**********************************************************************************/
	
	/****����Location����ı�***************************************************************/
	private class UpdateLocationHandler extends Handler {
		@Override
		public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
			if(msg.arg1 == 1 && msg.obj != null){
				latitude = location.getLatitude()* 1E6; // ����
				longitude = location.getLongitude()* 1E6; // �
//				double altitude = location.getAltitude(); // ����
				
				//����һ��intent  
				Intent intent = new Intent("GPSLocationService");
				intent.putExtra("latitude",latitude);
				intent.putExtra("longitude",longitude);
				sendBroadcast(intent);  //�㲥��ȥ  
			}	
		}
	}
	
	private class UpdateLocationThread extends Thread {
		public void run() {
			// TODO Auto-generated method stub
			locationListener = new LocationListener() {
				public void onLocationChanged(Location location) { // �����ı�ʱ�����˺������Provider������ͬ����꣬��Ͳ��ᱻ����
					if (location != null) {
						Log.i("SuperMap", "Location changed : Lat: "+ location.getLatitude() + " Lng: "+ location.getLongitude());
						locationManager.requestLocationUpdates((String)provider, 30000, 1, locationListener);   
						Message messagee = updateLocationHandler.obtainMessage();
						messagee.arg1 = 1;
						messagee.obj = location;
						messagee.sendToTarget();
					}
				}

				public void onProviderDisabled(String provider) {
					// Provider��disableʱ�����˺������GPS���ر�
				}
				public void onProviderEnabled(String provider) {
					// Provider��enableʱ�����˺������GPS����
				}

				public void onStatusChanged(String provider, int status,
						Bundle extras) {
					// Provider��ת̬�ڿ��á���ʱ�����ú��޷������״ֱ̬���л�ʱ�����˺���
				}
			};
		}
	}
	/**********************************************************************************/

	public double getLatitude() {
		return latitude;
	}

	public double getLongitude() {
		return longitude;
	}
	
	private class GPSLocationBinder extends Binder{
		public double getLatitude() {
			return getLatitude();
		}

		public double getLongitude() {
			return getLongitude();
		}
	}
}

这个事gps定位的,写完了没有测试,以为项目对经度要求不是很高,后来用的基站定位,应该没啥问题,注释乱码了,呵呵

1
农民二狗
农民二狗
package com.mnc.location;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.telephony.TelephonyManager;
import android.telephony.gsm.GsmCellLocation;
import android.util.Log;
import android.widget.Toast;

public class GSMLocationService extends Service {

	private double latitude;
	private double longitude;

	private GSMLocationBinder gSMLocationBinder = new GSMLocationBinder();

	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub

		int cid = 0;
		int lac = 0;
		int mcc = 0;
		int mnc = 0;
		
		TelephonyManager mTelephonyManager = (TelephonyManager) this
				.getSystemService(Service.TELEPHONY_SERVICE);
		if (mTelephonyManager == null) {
//			ShowDebugInfo("mTelephonyManager == null");
			return null;
		}
		GsmCellLocation mGsmCellLocation = (GsmCellLocation) mTelephonyManager.getCellLocation();
		if (mGsmCellLocation == null) {
//			ShowDebugInfo("�޷����Gsm����");
			 cid = 7272;
			 lac = 28709;
		} else {
//			ShowDebugInfo("�����gms����");
			cid = mGsmCellLocation.getCid();
			lac = mGsmCellLocation.getLac();
			
			mcc = Integer.valueOf(mTelephonyManager.getNetworkOperator().substring(0,3));
			mnc = Integer.valueOf(mTelephonyManager.getNetworkOperator().substring(3,5));
		}
		
		
		try {
			// ��װJSON��ѯ�ַ�
			JSONObject holder = new JSONObject();
			holder.put("version", "1.1.0");
			holder.put("host", "maps.google.com");
			// holder.put("address_language", "zh_CN");
			holder.put("request_address", true);
			JSONArray array = new JSONArray();
			JSONObject data = new JSONObject();
			data.put("cell_id", cid); // 25070
			data.put("location_area_code", lac);// 4474
			data.put("mobile_country_code", mcc);// 460
			data.put("mobile_network_code", mnc);// 0
			array.put(data);
			holder.put("cell_towers", array);
			// �������ӣ������������ܻ�Ӧ
			DefaultHttpClient client = new DefaultHttpClient();
			HttpPost post = new HttpPost("http://www.google.com/loc/json");
			StringEntity se = new StringEntity(holder.toString());
			post.setEntity(se);
			HttpResponse resp = client.execute(post);
			HttpEntity entity = resp.getEntity();
			BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
			StringBuffer sb = new StringBuffer();
			String result = br.readLine();
			while (result != null) {
				sb.append(result);
				result = br.readLine();
			}
			String message=sb.toString();
			Log.v("ddddd=====", message);
			JSONObject jsonObject = new JSONObject(message.toString()); 
			JSONObject location = jsonObject.getJSONObject("location");
			latitude = new Double(location.getString("latitude")).doubleValue();
			longitude = new Double(location.getString("longitude")).doubleValue();
			Log.v("fffff=====", latitude+"");
			Log.v("ggggg=====", longitude+"");
			
			//����һ��intent  
			intent = new Intent("GSMLocationService");
			intent.putExtra("latitude",latitude);
			intent.putExtra("longitude",longitude);
			sendBroadcast(intent);  //�㲥��ȥ  
			
		}catch(Exception e){
			e.printStackTrace();
		}
		
		
//		String strCid = "http://www.anttna.com/cell2gps/cell2gps.php?lac="
//				+ lac + "&cellid=" + cid;
//		String strRS = GetCIDName(strCid);
//		Log.v("strCid", strCid);
//		Log.v("strRS", strRS);
//		String[] strSP = strRS.split(",");
//		if(strRS!=null && strRS.length()>0 && !"0".equals(strRS)){
//			Log.v("strSP[0]", strSP[0]);
//			Log.v("strSP[1]", strSP[1]);
//			latitude = new Double(strSP[0]).doubleValue() * 1E6;
//			longitude = new Double(strSP[1]).doubleValue() * 1E6;
//		}
//		Log.v("ddddd=====", latitude+"-"+longitude);
		
		
		

		// String strOutput = "CellID:" + cid + ", LAC:" + lac + "\n";
		// strOutput += "��վ��λ:\n����:";
		// strOutput += strSP[0];
		// strOutput += "\n";
		// strOutput += "�:";
		// strOutput += strSP[1];
		// strOutput += "\n";
		// String[] strSP2 = strSP[2].split(";");
		// strOutput += "ʡ��:";
		// strOutput += strSP2[0].substring(1);
		// strOutput += "\n";
		// strOutput += "����:";
		// strOutput += strSP2[1];
		// strOutput += "\n";
		// strOutput += "��:";
		// strOutput += strSP2[2];
		// strOutput += "\n";
		// strOutput += "�ֵ�:";
		// strOutput += strSP2[3];
		// strOutput += "\n";
		// strOutput += "�ܱ�:";
		// strOutput += strSP2[4];
		// strOutput += "\n";

		return gSMLocationBinder;
	}

	// ����IO����
	public String GetCIDName(String url) {
		URL internetUrl = null;
		String strRS = new String("0");
		int length = -1;

		try {
			internetUrl = new URL(url);
		} catch (MalformedURLException e) {
			e.printStackTrace();
//			ShowDebugInfo("���������쳣,��ַ����");
			return strRS;
		}

		HttpURLConnection conn = null;
		try {
			conn = (HttpURLConnection) internetUrl.openConnection();
			conn.setDoInput(true);
			conn.setConnectTimeout(2000);
			byte[] data = new byte[4096];
			for (int i = 0; i < 4096; i++) {
				data[i] = 0;
			}
			conn.connect();

			InputStream is = conn.getInputStream();
			length = is.read(data);
			strRS = new String(data, "GBK");
		} catch (IOException e) {
			e.printStackTrace();
//			ShowDebugInfo(e.getMessage());
			// myTextView.setText(e.getMessage());
		} finally {
			if (conn != null) {
				conn.disconnect();
				conn = null;
				internetUrl = null;
			}
		}

		if (length == -1 || strRS.length() < 10) {
			return strRS;
		}

//		ShowDebugInfo("�����ȡ�ɹ�");
		return strRS.substring(0, length);
	}

	// �������
	public void ShowDebugInfo(String txt) {
		Toast.makeText(this, txt, Toast.LENGTH_LONG).show();
	}

	public double getLatitude() {
		return latitude;
	}

	public double getLongitude() {
		return longitude;
	}

	private class GSMLocationBinder extends Binder {
		public double getLatitude() {
			return getLatitude();
		}

		public double getLongitude() {
			return getLongitude();
		}
	}

}

基站定位的也发给你把,因为在公交车里的话有时候gps的信号肯定不好,这个基站定位我测试过,在我这误差大概个三五百米的样子,周边的基站数量应该对定位影响很大

疯狂的艺术家
疯狂的艺术家
基站定位 给大家普及一下啊
0
javacc
javacc
太感谢你了 我调试调试,呵呵!
0
疯狂的艺术家
疯狂的艺术家

 @qsyz2002 基站定位 给大家普及一下啊

0
javacc
javacc

新手就需要注释,能不能把注释改好了啊 乱码没法看啊。

0
农民二狗
农民二狗
package com.mnc.location;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.telephony.TelephonyManager;
import android.telephony.gsm.GsmCellLocation;
import android.util.Log;
import android.widget.Toast;

public class GSMLocationService extends Service {

	private double latitude;
	private double longitude;

	private GSMLocationBinder gSMLocationBinder = new GSMLocationBinder();

	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub

		int cid = 0;
		int lac = 0;
		int mcc = 0;
		int mnc = 0;
		
		TelephonyManager mTelephonyManager = (TelephonyManager) this
				.getSystemService(Service.TELEPHONY_SERVICE);
		if (mTelephonyManager == null) {
//			ShowDebugInfo("mTelephonyManager == null");
			return null;
		}
		GsmCellLocation mGsmCellLocation = (GsmCellLocation) mTelephonyManager.getCellLocation();
		if (mGsmCellLocation == null) {
//			ShowDebugInfo("无法获得Gsm对象");
			 cid = 7272;
			 lac = 28709;
		} else {
//			ShowDebugInfo("获得了gms对象");
			cid = mGsmCellLocation.getCid();
			lac = mGsmCellLocation.getLac();
			
			mcc = Integer.valueOf(mTelephonyManager.getNetworkOperator().substring(0,3));
			mnc = Integer.valueOf(mTelephonyManager.getNetworkOperator().substring(3,5));
		}
		
		
		try {
			// 组装JSON查询字符串
			JSONObject holder = new JSONObject();
			holder.put("version", "1.1.0");
			holder.put("host", "maps.google.com");
			// holder.put("address_language", "zh_CN");
			holder.put("request_address", true);
			JSONArray array = new JSONArray();
			JSONObject data = new JSONObject();
			data.put("cell_id", cid); // 25070
			data.put("location_area_code", lac);// 4474
			data.put("mobile_country_code", mcc);// 460
			data.put("mobile_network_code", mnc);// 0
			array.put(data);
			holder.put("cell_towers", array);
			// 创建连接,发送请求并接受回应
			DefaultHttpClient client = new DefaultHttpClient();
			HttpPost post = new HttpPost("http://www.google.com/loc/json");
			StringEntity se = new StringEntity(holder.toString());
			post.setEntity(se);
			HttpResponse resp = client.execute(post);
			HttpEntity entity = resp.getEntity();
			BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
			StringBuffer sb = new StringBuffer();
			String result = br.readLine();
			while (result != null) {
				sb.append(result);
				result = br.readLine();
			}
			String message=sb.toString();
			Log.v("ddddd=====", message);
			JSONObject jsonObject = new JSONObject(message.toString()); 
			JSONObject location = jsonObject.getJSONObject("location");
			latitude = new Double(location.getString("latitude")).doubleValue();
			longitude = new Double(location.getString("longitude")).doubleValue();
			Log.v("fffff=====", latitude+"");
			Log.v("ggggg=====", longitude+"");
			
			//定义一个intent  
			intent = new Intent("GSMLocationService");
			intent.putExtra("latitude",latitude);
			intent.putExtra("longitude",longitude);
			sendBroadcast(intent);  //广播出去  
			
		}catch(Exception e){
			e.printStackTrace();
		}
		
		
//		String strCid = "http://www.anttna.com/cell2gps/cell2gps.php?lac="
//				+ lac + "&cellid=" + cid;
//		String strRS = GetCIDName(strCid);
//		Log.v("strCid", strCid);
//		Log.v("strRS", strRS);
//		String[] strSP = strRS.split(",");
//		if(strRS!=null && strRS.length()>0 && !"0".equals(strRS)){
//			Log.v("strSP[0]", strSP[0]);
//			Log.v("strSP[1]", strSP[1]);
//			latitude = new Double(strSP[0]).doubleValue() * 1E6;
//			longitude = new Double(strSP[1]).doubleValue() * 1E6;
//		}
//		Log.v("ddddd=====", latitude+"-"+longitude);
		
		
		

		// String strOutput = "CellID:" + cid + ", LAC:" + lac + "\n";
		// strOutput += "基站定位:\n经度:";
		// strOutput += strSP[0];
		// strOutput += "\n";
		// strOutput += "纬度:";
		// strOutput += strSP[1];
		// strOutput += "\n";
		// String[] strSP2 = strSP[2].split(";");
		// strOutput += "省份:";
		// strOutput += strSP2[0].substring(1);
		// strOutput += "\n";
		// strOutput += "城市:";
		// strOutput += strSP2[1];
		// strOutput += "\n";
		// strOutput += "区:";
		// strOutput += strSP2[2];
		// strOutput += "\n";
		// strOutput += "街道:";
		// strOutput += strSP2[3];
		// strOutput += "\n";
		// strOutput += "周边:";
		// strOutput += strSP2[4];
		// strOutput += "\n";

		return gSMLocationBinder;
	}

	// 网络IO访问
	public String GetCIDName(String url) {
		URL internetUrl = null;
		String strRS = new String("0");
		int length = -1;

		try {
			internetUrl = new URL(url);
		} catch (MalformedURLException e) {
			e.printStackTrace();
//			ShowDebugInfo("网络连接异常,地址错误");
			return strRS;
		}

		HttpURLConnection conn = null;
		try {
			conn = (HttpURLConnection) internetUrl.openConnection();
			conn.setDoInput(true);
			conn.setConnectTimeout(2000);
			byte[] data = new byte[4096];
			for (int i = 0; i < 4096; i++) {
				data[i] = 0;
			}
			conn.connect();

			InputStream is = conn.getInputStream();
			length = is.read(data);
			strRS = new String(data, "GBK");
		} catch (IOException e) {
			e.printStackTrace();
//			ShowDebugInfo(e.getMessage());
			// myTextView.setText(e.getMessage());
		} finally {
			if (conn != null) {
				conn.disconnect();
				conn = null;
				internetUrl = null;
			}
		}

		if (length == -1 || strRS.length() < 10) {
			return strRS;
		}

//		ShowDebugInfo("网络获取成功");
		return strRS.substring(0, length);
	}

	// 调试输出
	public void ShowDebugInfo(String txt) {
		Toast.makeText(this, txt, Toast.LENGTH_LONG).show();
	}

	public double getLatitude() {
		return latitude;
	}

	public double getLongitude() {
		return longitude;
	}

	private class GSMLocationBinder extends Binder {
		public double getLatitude() {
			return getLatitude();
		}

		public double getLongitude() {
			return getLongitude();
		}
	}

}

这个是从svn服务器上找的,需要的请检查下代码和上面注释的乱码的代码是否有改动,注释没有乱码了

0
农民二狗
农民二狗
package com.mnc.location;

import android.app.Service;
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.Binder;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.util.Log;

/**
 * GPS广播
 * @author gefy
 */
public class GPSLocationService extends Service {
	
	private LocationManager locationManager;
	private Location location;
	private String provider;
	
	private double latitude ;
	private double longitude;
	
	private GetLocationHandler getLocationHandler;
	private UpdateLocationHandler updateLocationHandler;
	private LocationListener locationListener;
	private GPSLocationBinder gPSLocationBinder = new GPSLocationBinder();

	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		Criteria criteria = new Criteria(); 
		//获得最好的定位效果 
		criteria.setAccuracy(Criteria.ACCURACY_FINE); 
		criteria.setAltitudeRequired(false); 
		criteria.setBearingRequired(false); 
		criteria.setCostAllowed(false);
		criteria.setPowerRequirement(Criteria.POWER_LOW); //使用省电模式 
		provider = locationManager.getBestProvider(criteria, true); //获得当前的位置提供者 
		location = locationManager.getLastKnownLocation(provider);
		
		if(location==null) {
			getLocationHandler = new GetLocationHandler();
			new GetLocationThread().start(); 
		}
		
		//监听用户坐标改变
		updateLocationHandler = new UpdateLocationHandler();
		new UpdateLocationThread().start(); 
		return gPSLocationBinder;
	}
	
	/****获得Location对象***************************************************************/
	private class GetLocationHandler extends Handler {
		public void handleMessage(Message msg) {
			if(msg.obj != null) {
				location = (Location)msg.obj;
				latitude = location.getLatitude()* 1E6; // 经度
				longitude = location.getLongitude()* 1E6; // 纬度
//				double altitude = location.getAltitude(); // 海拔
				
				//定义一个intent  
				Intent intent = new Intent("GPSLocationService");
				intent.putExtra("latitude",latitude);
				intent.putExtra("longitude",longitude);
				sendBroadcast(intent);  //广播出去  
			}
		}
	}
	private class GetLocationThread extends Thread{
		public void run(){
			while(location == null) location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
			Message messagee = getLocationHandler.obtainMessage();
			messagee.obj = location;
			messagee.sendToTarget();
		}
	}
	/**********************************************************************************/
	
	/****监听Location对象改变***************************************************************/
	private class UpdateLocationHandler extends Handler {
		@Override
		public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
			if(msg.arg1 == 1 && msg.obj != null){
				latitude = location.getLatitude()* 1E6; // 经度
				longitude = location.getLongitude()* 1E6; // 纬度
//				double altitude = location.getAltitude(); // 海拔
				
				//定义一个intent  
				Intent intent = new Intent("GPSLocationService");
				intent.putExtra("latitude",latitude);
				intent.putExtra("longitude",longitude);
				sendBroadcast(intent);  //广播出去  
			}	
		}
	}
	
	private class UpdateLocationThread extends Thread {
		public void run() {
			// TODO Auto-generated method stub
			locationListener = new LocationListener() {
				public void onLocationChanged(Location location) { // 当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发
					if (location != null) {
						Log.i("SuperMap", "Location changed : Lat: "+ location.getLatitude() + " Lng: "+ location.getLongitude());
						locationManager.requestLocationUpdates((String)provider, 30000, 1, locationListener);   
						Message messagee = updateLocationHandler.obtainMessage();
						messagee.arg1 = 1;
						messagee.obj = location;
						messagee.sendToTarget();
					}
				}

				public void onProviderDisabled(String provider) {
					// Provider被disable时触发此函数,比如GPS被关闭
				}
				public void onProviderEnabled(String provider) {
					// Provider被enable时触发此函数,比如GPS被打开
				}

				public void onStatusChanged(String provider, int status,
						Bundle extras) {
					// Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
				}
			};
		}
	}
	/**********************************************************************************/

	public double getLatitude() {
		return latitude;
	}

	public double getLongitude() {
		return longitude;
	}
	
	private class GPSLocationBinder extends Binder{
		public double getLatitude() {
			return getLatitude();
		}

		public double getLongitude() {
			return getLongitude();
		}
	}
}

这个是GPS定位的,没有测试过

0
javacc
javacc

非常感谢 ,测试我来,有问题我还会在这里提问的。谢谢你的关注。

0
农民二狗
农民二狗

 

我给你改好了,下面是截图

我现在把写给你的demo再传下

代码在这里:http://www.oschina.net/code/snippet_239908_9556

返回顶部
顶部