Skip to content

Latest commit

 

History

History
129 lines (108 loc) · 4.06 KB

快速集成.md

File metadata and controls

129 lines (108 loc) · 4.06 KB

Android-SDK

项目手动集成

创建或打开Android Studio新项目

1、复制jar及so文件夹到工程libs文件夹

so支持的架构:armeabi、armeabi-v7a、x86

arcgis-android-api.jar
/armeabi
/armeabi-v7a
/x86
jackson-all-1.9.0.jar
TYMapSDK-2.x.x.jar
TYBLELocationEngine-2.x.x.jar
TYMapData.jar

单独接入定位只需:TYBLELocationEngine.jar、libTYLocationEngine.so、libsqlite3.so和TYMapData.jar

2、修改Module的build.gradle

android {
	//添加如下
    sourceSets {
        main {
            jniLibs.srcDir(['libs'])
        }
    }
   }

3、界面文件引入TYMapView

    <com.ty.mapsdk.TYMapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></com.ty.mapsdk.TYMapView>

4、项目配置权限和服务,若targetSdkVersion>=23,需代码调用获取定位、文件读写权限代码

    <!-- 定位、地图更新数据 -->
    <uses-permission android:name="android.permission.INTERNET" />

    <!-- 定位扫描beacon用 -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

    <!-- 拷贝定位、地图数据用,targetSdkVersion>=23需手动申请 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- Android6.0 后蓝牙扫描需要微定位权限,targetSdkVersion>=23需手动申请 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    
    <application>
        <!-- 定位需此服务进行蓝牙扫描 -->
        <service android:name="com.ty.locationengine.ibeacon.BeaconService" />
     </application>

手动权限请求示例:

    private void checkPermission() {
    //判断当前系统的SDK版本是否大于23
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
			if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
                    != PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
                    != PackageManager.PERMISSION_GRANTED) {
                    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE}, BLE_LOCATION_STATE);
            } else {
                //已有权限
                onPermissionGranted();
            }
        }
    }
    //Android6.0申请权限的回调方法
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == BLE_LOCATION_STATE) {
                if (grantResults.length >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    // 获取到权限
                    onPermissionGranted();
                } else {
                    // 没有获取到权限,做特殊处理
                }
        }
    }

5、必须复制drawable-hdpi文件夹下图标到

地图所需图标文件,可以替换不能改名,其中icon_ 开头的是设施图标,可按地图所需精简(请考虑扩展,勿删占位图标icon_info)。

6、Activity加载地图、定位代码

加载so库

    static {
    		//地图需要
        System.loadLibrary("TYMapSDK");
			//定位需要
        System.loadLibrary("TYLocationEngine");
    }

加载地图代码

        mapView = findViewById(R.id.mapView);

        TYMapEnvironment.initMapEnvironment();
        mapView.init("建筑ID","appkey");
        mapView.setFloor("初始楼层");//B1,F1等,地图为准
        mapView.addMapListener(this);

启用定位代码

        locationManager = new TYLocationManager(this,"建筑ID","appkey");
        locationManager.addLocationEngineListener(this);
        locationManager.startUpdateLocation();
        //界面onDestroy时请locationManager.stopUpdateLocation();//停止定位引擎