号线项目,百度SDK定位开发总结

1:android WebView控件可注册javaScript脚本接口,可实现android与  js 交互

示例:

android端 WebViewActivity.java文件

//小区GIS 添加可被js调用的接口
//设置可调用js
webView.getSettings().setJavaScriptEnabled(true);
//添加可被js调用的接口
webView.addJavascriptInterface(new SubmitLngLatData(), "baiduMap");    

//提供给basePath.js调用的方法
@JavascriptInterface                   / /该调用的方法 要声明@JavascriptInterface  才可被js调用
public GpsPoint displayGIS(){ 

Systeml.out.println("该方法用于basePath.js文件调用");
return point;
}

basePath.js文件    

/**
 * 小区GIS
 */
function goResources() {    
//小区GIS地图接口调用
//获取提交过来的gps经纬度数据
var gpsData = window.baiduMap.displayGIS();
var longitude = gpsData.getLongitude();   //获得经度
var latitude = gpsData.getLatitude();   //获得纬度
// goOut("http://192.168.100.20:8001/search/mobileGridSearch?Lng="+longitude+"&Lat="+latitude);

}

示图:



2:jsp文件变量声明及js文件引用变量方法




3:关于打开/关闭 手机GPS应用功能代码  强制打开/关闭  提醒用户是否打开GPS


/**
		 * 强制打开gps
		 * @param context
		 */
		public  void openGPS(Context context) {  
            Intent GPSIntent = new Intent();  
            GPSIntent.setClassName("com.android.settings",  "com.android.settings.widget.SettingsAppWidgetProvider");  
            GPSIntent.addCategory("android.intent.category.ALTERNATIVE");  
            GPSIntent.setData(Uri.parse("custom:3"));  
            try {  
                PendingIntent.getBroadcast(context, 0, GPSIntent, 0).send();  
            } catch (CanceledException e) {  
                e.printStackTrace();  
            }  
        }






/**
		 * 判断是否打开gps
		 * @param context
		 * @return
		 */
		public boolean isOPen(Context context) {  
            LocationManager locationManager   
                                     = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);  
            // 通过GPS卫星定位,定位级别可以精确到街(通过24颗卫星定位,在室外和空旷的地方定位准确、速度快)  
            boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);  
            // 通过WLAN或移动网络(3G/2G)确定的位置(也称作AGPS,辅助GPS定位。主要用于在室内或遮盖物(建筑群或茂密的深林等)密集的地方定位)  
            boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);  
            if (gps || network) {  
                return true;  
            }  
       
            return false;  
        }
		


 
public class SingletonTest {
	public static void main(String[] args) {
		Singleton s1 = Singleton.getInstance();
		Singleton s2 = Singleton.getInstance();
// 		测试创建的两个对象是否为同一个对象
		System.out.println(s1 == s2);
	}
}

//单例模式之懒汉式
class Singleton {
//	2:在类内部创建一个实例
	private static Singleton instance = null;
//	1:私有化构造器,使得此类只能在类内部创建实例,而不能在类外部创建实例
	private Singleton() {
		
	}
//	3:私有化此实例,通过公共的方法调用。
//	4:此公共的方法,通过类调用,因此设置为static,同时此实例也设置为static
	public static Singleton getInstance() {
		if(instance == null) {
			instance = new Singleton();
		}
		return instance;
	}
}











猜你喜欢

转载自blog.csdn.net/u013148287/article/details/52571530