2023-03-23 22:30:18 +05:30

123 lines
4.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.example.beacondemo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import com.minew.beaconplus.sdk.MTCentralManager;
import com.minew.beaconplus.sdk.MTConnectionHandler;
import com.minew.beaconplus.sdk.MTPeripheral;
import com.minew.beaconplus.sdk.enums.TriggerType;
import com.minew.beaconplus.sdk.enums.Version;
import com.minew.beaconplus.sdk.exception.MTException;
import com.minew.beaconplus.sdk.interfaces.SetTriggerListener;
import com.minew.beaconplus.sdk.model.Trigger;
public class DetailActivity extends AppCompatActivity implements View.OnClickListener {
private MTPeripheral mtPeripheral;
private MTConnectionHandler mMTConnectionHandler;
private MTCentralManager mMtCentralManager;
private View ivBack;
private TextView tvSet;
int mCurSlot = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
initView();
initData();
initListener();
}
private void initView() {
ivBack = findViewById(R.id.iv_back);
tvSet = findViewById(R.id.tv_set);
}
private void initData() {
mtPeripheral = MainActivity.mtPeripheral;
mMTConnectionHandler = mtPeripheral.mMTConnectionHandler;
mMtCentralManager = MTCentralManager.getInstance(this);
}
private void initListener() {
ivBack.setOnClickListener(this);
tvSet.setOnClickListener(this);
}
public void saveTrigger() {
Version version = this.mMTConnectionHandler.mTConnectionFeature.getVersion();
if (version.getValue() >= 4) {
if (this.mMTConnectionHandler.mTConnectionFeature.supportTriggers.size() > 0
&& this.mMTConnectionHandler.triggers.size() > 0) {
Trigger trigger = new Trigger();
trigger.setCurSlot(mCurSlot);//选择设置那个通道
boolean isOpen = true; //代表是否开启了触发器
if (isOpen) {
TriggerType triggerType = TriggerType.BTN_DTAP_EVT;
trigger.setTriggerType(TriggerType.BTN_DTAP_EVT);//双击按键
switch (triggerType) {
case TEMPERATURE_ABOVE_ALARM://温度高于
case TEMPERATURE_BELOW_ALARM://温度低于
case HUMIDITY_ABOVE_ALRM://湿度高于
case HUMIDITY_BELOW_ALRM://湿度低于
case LIGHT_ABOVE_ALRM://光感高于
case LIGHT_BELOW_ALARM://光感低于
case FORCE_ABOVE_ALRM://压感大于
case FORCE_BELOW_ALRM://压感低于
case TVOC_ABOVE_ALARM://TVOC大于
case TVOC_BELOW_ALARM://TVOC低于
trigger.setCondition(10);//这些触发条件,时长 mTemCondition 不需要乘 1000
break;
default:
trigger.setCondition(10 * 1000);
}
} else {
trigger.setTriggerType(TriggerType.TRIGGER_SRC_NONE);
trigger.setCondition(0);
}
if (version.getValue() > 4) {
trigger.setAdvInterval(2000);//广播间隔 100 ms ~ 5000 ms
trigger.setRadioTxpower(0);//广播功率:-40dBm ~ 4dBm
trigger.setAlwaysAdvertising(false);//true总是广播false不总是广播
}
this.mMTConnectionHandler.setTriggerCondition(trigger, new SetTriggerListener() {
@Override
public void onSetTrigger(boolean success, MTException mtException) {
//Monitor whether the write is successful
Log.e("minew_tag","trigger success " + success);
}
});
}
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_back:
mMtCentralManager.disconnect(mtPeripheral);
finish();
break;
case R.id.tv_set:
saveTrigger();
break;
default:
break;
}
}
}