广东触点科技有限公司 Android 触点云 SDK

罗康 36aea9ef89 更新 'README.md' 8 months ago
README.md 36aea9ef89 更新 'README.md' 8 months ago
td-cloud-1.1.0.aar dc6a6cb7e8 更新aar 8 months ago
td-sip-1.1.0.aar dc6a6cb7e8 更新aar 8 months ago

README.md

##使用提示 本文是TDCloud Android SDK标准的集成指南文档。用以指导SDK的使用方法,默认读者已经熟悉IDE(Eclipse或者Android Studio)的基本使用方法,以及具有一定的Android编程知识基础。

本篇指南匹配的TDCloud Android SDK版本为:1.1.0 及以后版本。

如果您想要快速地测试、感受下APP控制购买的硬件的效果,请参考本文在短时间内跑通 Demo。如果您看到本文档,但还未下载Android SDK,请进行下载。

##产品功能说明

触点云SDK(TDCloud )是一个让应用轻松实现智慧小区控制设备的服务SDK,使得终端用户手机通过服务器连接小区的门禁、室内机、停车道闸等。

本Android SDK方便开发者基于我司智慧社区产品实现智慧社区业务。

SDK所支持的Android系统版本 目前SDK只支持Android 4.4或以上版本的手机系统;

##手动集成步骤

手动集成压缩包下载链接:

tdcloud_sdk.zip集成压缩包内容

td-cloud-1.1.0.aar(触点业务核心包)

td-sip-1.1.0.aar(触点云对讲业务核心包)

###SDK文件移植 解压缩tdcloud_sdk.zip集成压缩包。 复制td-cloud-1.1.0.aar到工程 libs/ 目录下。 复制td-sip-1.1.0.aar到工程 libs/目录下。

###配制build.gradle

dependencies {
    implementation(name: 'td-cloud-1.1.0', ext: 'aar')
    implementation(name: 'td-sip-1.1.0', ext: 'aar')
}

###配置AndroidManifest.xml 根据Demo压缩包里的AndroidManifest.xml样例文件,来配置应用程序项目的 AndroidManifest.xml。 AndroidManifest示例

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.td.tdfunction">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <application
        android:name=".TDApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:usesCleartextTraffic="true"
        android:theme="@style/Theme.cloud">
        <activity
            android:name="com.td.tdsip.VideoActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:launchMode="singleTask"
            android:screenOrientation="portrait" />
        <service android:name="com.td.tdsip.TdSipManager" />
        <service android:name="tru.cn.com.trudianlibrary.bluetooth.controller.utils.BluetoothLeService" />
    </application>
</manifest>

###必须权限说明

权限 用途
RECEIVE_USER_PRESENT 允许应用可以接收点亮屏幕或解锁广播。
INTERNET 允许应用可以访问网络。
WAKE_LOCK 允许应用在手机屏幕关闭后后台进程仍然运行。
READ_PHONE_STATE 允许应用访问手机状态。
WRITE_EXTERNAL_STORAGE 允许应用写入外部存储。
READ_EXTERNAL_STORAGE 允许应用读取外部存储。
WRITE_SETTINGS 允许应用读取系统设置项。
VIBRATE 允许应用震动。
MOUNT_UNMOUNT_FILESYSTEMS 允许应用挂载/卸载外部文件系统。
ACCESS_NETWORK_STATE 允许应用获取网络信息状态,如当前的网络连接是否有效。

###添加代码 TDCloud SDK提供的API接口,都主要集中在tru.cn.com.trudianlibrary.bluetooth.controller.utils.TrudianEG类里。

####init初始化SDK

public void init(Application context, TDLibraryBean tdLibraryBean, boolean isDebug)

在自己的项目中自定义的Application中做SDK初始化.(注:rsaKey,appId,appKey,domain这些参数在我司提供的后台配置完成后获得)

public class TDApplication extends Application  {

    @Override
    public void onCreate() {
        super.onCreate();
        String rsaKey =“ewihfuewufe***ewfeowjfe”;
        String appId = "10***00";
        String appKey = "e17****ec09";
		String domain = "https://tdc***.com"
        TDLibraryBean tdLibraryBean = new TDLibraryBean(domain,rsaKey,appId,appKey);
        TrudianEG.getInstance().init(this,tdLibraryBean, BuildConfig.DEBUG);
    }}

####SDK账号登录 在自己的项目中登录后所得到的泛达功能SDK的账号、密码进行功能SDK登录,并自己保存相关的返回信息,可参考demo的com.farbell.farbellfunction.activity.LoginActivity类处理逻辑

    TrudianEG.getInstance().login(account, pwd, new RequestCallBackImpl<NetOutLoginByPasswordBean>(LoginActivity.this){
                        @Override
                        protected void onStart() {
                            super.onStart();
                        }

                        @Override
                        protected void onFinally() {
                            super.onFinally();
                        }

                        @Override
                        protected void onSuccess(NetOutLoginByPasswordBean data, String msg) {
                            super.onSuccess(data, msg);
                        }

                        @Override
                        protected void onException(Exception e, String msg) {
                            super.onException(e, msg);
                        }

                        @Override
                        protected void onUnCatchStatus(int status, String msg, String data) {
                            super.onUnCatchStatus(status, msg, data);
                        }
                    } );

####开门业务 #####远程开门 远程开门是对于我司的联网门口机,业主有相对应的可以开的门禁设备,当有访客访问业主或者业主自己有进出需要的时候在手机上点击远程一键开门,门禁设备收到指令后自己开门。通过当前的社区ID,调用

TrudianEG.getInstance().getRemoteEntranceGuard(String communityId,RequestCallBack requestCallBack)

获得用户所有的可以远程开门的门禁列表,调用

TrudianEG.getInstance().openRemoteEntranceGuard(String acID,RequestCallBack requestCallBack)

对你选定的门禁机进行远程开门 相关流程可以参考TDCloud项目里的

com.farbell.farbellfunction.fragment.RemoteOpenDoorFragment类进行处理。 #####二维码开门 二维码开门的使用场景更多是访客拜访,进入小区时业主可以提前预设好权限二维码发送给访客,访客收到二维码,打开门禁的二维码扫描,对准二维码。门禁机识别认证成功后自动开门。 通过当前的社区ID,调用 API

TrudianEG.getInstance().getAuthQrcode(String communityId,int houseId,RequestCallBack requestCallBack)

获取用于开门的二维码信息,呈现在界面上生成二维码,通过门口机扫描实现二维码识别开门的功能 #####按键码开门 按键码开门的使用场景是每个门禁会生成对应的按键码,业主或者访客记住对应的门禁机按键码,在门禁机上输入按键码,门禁验证成功后自动开门。 通过当前的社区ID,调用

TrudianEG.getInstance().getNumberCode(String communityId,RequestCallBack requestCallBack)

获取用于开门的按键码信息,呈现在界面上生成每个门禁对应的按键码,在门口机输入相对应门禁的按键码信息来开门的功能 #####蓝牙开门 蓝牙开门的使用场景在于业主通过手机在离门禁机三米以内的范围里点击蓝牙开门,蓝牙或自动匹配门禁蓝牙,发送开门指令,门禁接收指令验证成功后自动开门。

#####人脸识别开门 业主通过手机APP或者物业采集人脸后,出入小区的大门、楼栋大门。只需要站在门禁正前方,门禁自动识别到人脸验证成功后自动开门。 集成人脸识别功能中SDK提供了人脸注册功能,调用

TrudianEG.getInstance().saveFace(String mFaceId,String imageIds,String houseIds,String niceName,int mUserType,RequestCallBack requestCallBack)

查询已经注册的人脸列表进行可视管理,调用

TrudianEG.getInstance().showFaceCards(String communityId,int type,RequestCallBack requestCallBack)

###云对讲 云对讲业务在于业主可以通过手机实时查看门禁附近的画面信息,当有访客呼叫或者业主主动监视查看门禁,镜头里呈现的人是不是业主的访客,然后自主判断是不是给予开门的业务,从而方便又安全的管理小区人员进出能力。

###电梯预约 电梯预约的使用场景是方便业主出门前提前让电梯到达业主所居住的楼层,使业主一出门就能进入电梯,而不需要在电梯门口等待,节省业主通行时间。 通过当前的社区ID,调用

TrudianEG.getInstance().getElevatorList(String communityId,RequestCallBack requestCallBack)

来查询可预约电梯列表,调用

TrudianEG.getInstance().sendReservationElevator(StringacID,RequestCallBackrequestCallBack)

实现呼梯功能 ###车牌预约 车牌预约的使用场景是让业主的小车在小区里面更加的安全,当业主对他的汽车进行车牌锁定后,对应的汽车将无法出入小区,直到业主对其进行解锁为止。另外一种情景是访客有进入小区需求时,业主可以通过车牌预约提前输入访客车牌号进入时间等设置完成后访客进入小区,智能道闸可以通过扫描车牌号验证业主预约的数据对其判断是否打开道闸 1、我的车牌管理 通过当前的社区ID,调用

TrudianEG.getInstance().getMyCarNoList(String communityId,RequestCallBack requestCallBack)

查询车牌列表,调用

TrudianEG.getInstance().unlockCarNo(String acID,int type,RequestCallBack requestCallBack)

实现一键锁车与解锁的功能 2、车牌预约 实现车牌预约可通过当前的社区ID,调用

TrudianEG.getInstance().parkingSubscribe(String communityId,String optionsIDs,String beginTime,String endTime,String carNumber,RequestCallBack requestCallBack)

实现取消预约,调用

TrudianEG.getInstance().cancelOrder(String mOrderID,RequestCallBack requestCallBack)

查询预约记录详情,调用

TrudianEG.getInstance().getOrderDetail(String mOrderID,RequestCallBack requestCallBack)

##技术支持 当出现问题时:

请仔细阅读文档,查看是否有遗漏。 Android FAQ 给我们的support发邮件support@farbell.net 为了更快速的解决问题,在寻求帮助时,请提供下列信息: 你所调用的是什么API,所传参数,完整的报错信息,出现异常的时间点 如果是SDK问题请提供对应的SDK版本和完整的日志记录,日志信息请使用TXT文件上传 出现异常的设备是Android ,列出具体的机型和系统

详细功能与demo请参考网站