Skip to content

jwkj/SoundwaveDemo

Repository files navigation

声波配网demo

配置

Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Step 2. Add the dependency

dependencies {
      //声波配网库
      compile 'com.github.jwkj:SoundWaveSender:v2.0.2'
      //声波配网库所依赖的udp通讯库,不可删除
      compile 'com.jwkj:udpsender:v2.0.1'
}

忽略文件

添加忽略文件(app/proguard-rules.pro)

-libraryjars libs/EMTMFSDK_0101_160914.jar
-dontwarn com.lsemtmf.**
-keep class com.lsemtmf.**{*; }
-dontwarn com.larksmart.**
-keep class com.larksmart.**{*; }

初始化

在发送广播之前需要先初始化,建议在发送广播的前2s之前初始化,所以建议在发送广播的上一个配置页就初始化(见demo)

SoundWaveManager.init(this);//初始化声波配置

在初始化页销毁的时候,需要将声波管理器销毁以节省系统资源

   /**
     * 销毁的时候也要及时销毁
     */
    @Override
    protected void onDestroy() {
        SoundWaveManager.onDestroy(this);
    }

发送声波

  SoundWaveSender.getInstance()
                .with(this)//不要忘记写哦
                .setWifiSet(wifiSSID, wifiPwd)//wifi名字和wifi密码
                .send(new ResultCallback() {
                  /**
                    *拿到结果的时候会回调(温馨提示:由于设备的重发机制,可能会收到多条重复数据,需自己处理哦)
                    */
                    @Override
                    public void onNext(UDPResult udpResult) {
                      //get result
                    }
                   /**
                     * 声波发送失败的时候会回调
                     */
                    @Override
                    public void onError(Throwable throwable) {
                        //发生错误的时候需要处理一下,一般是先关闭声波发送,再重发
                    }

                    /**
                     * 当声波停止的时候
                     */
                    @Override
                    public void onStopSend() {
                       //当声波播放完成的时候会回调,此时如果还没拿到结果,那么建议在此处重新发送声波
                    }
                });

关闭声波发送

SoundWaveSender.getInstance().stopSend();

此外,为了避免非正常情况退出应用导致未能及时调用stopsend()停止任务,建议在activity/fragment的生命周期销毁的时候也关闭任务

   /**
     * 页面停止的时候也要及时关闭
     */
     @Override
     protected void onStop() {
           SoundWaveSender.getInstance().with(this).stopSend();
           super.onStop();
     }

截图

温馨提示:

  • 建议将手机音量调至最大

  • 建议将手机靠近设备30cm以内

  • 需要将手机连接到wifi

  • 暂不支持5G的wifi

版本更新记录

aar版

soundwave-release.aar

  • 【新增】添加64位支持,取消v2.0.2,以soundwave-release.aar的方式依赖

2.x版

2.0.2

  • 【修复】多次发送声波导致不走onNext的bug

2.0.1

  • 【修复】关闭任务还在接收结果
  • 【优化】更换底层库,使用外部引用方式导入,共享主项目依赖文件

2.x 相对稳定可用于生产环境,使用方法不变。不建议使用1.x版本,

1.x版

不建议使用1.x版,不太稳定,请使用最新版,使用方法不变

1.1.2

  • 【修复】多次调用onNext方法

About

声波配网demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages