diff --git a/iFish7/build.gradle b/iFish7/build.gradle index 5d0b588c4..15372ee47 100644 --- a/iFish7/build.gradle +++ b/iFish7/build.gradle @@ -151,7 +151,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.1.4'//2.0.4 implementation 'com.tencent:mmkv:2.0.0' implementation("com.github.bumptech.glide:okhttp3-integration:4.11.0" ) -// implementation 'com.github.Jasonchenlijian:FastBle:2.4.0' + implementation 'com.github.Jasonchenlijian:FastBle:2.4.0' implementation 'io.github.lucksiege:pictureselector:v3.11.2' // 图片压缩 (按需引入) diff --git a/iFish7/src/main/AndroidManifest.xml b/iFish7/src/main/AndroidManifest.xml index 7256fc80b..44abb2324 100644 --- a/iFish7/src/main/AndroidManifest.xml +++ b/iFish7/src/main/AndroidManifest.xml @@ -11,9 +11,6 @@ - - - @@ -37,14 +34,14 @@ - - - - - - - - + + + + + + + + + = Build.VERSION_CODES.S){ // jiablue -// perlist = new String[]{ -// android.Manifest.permission.BLUETOOTH_SCAN, -// android.Manifest.permission.BLUETOOTH_ADVERTISE, -// android.Manifest.permission.BLUETOOTH_CONNECT, -// android.Manifest.permission.ACCESS_FINE_LOCATION, -// android.Manifest.permission.ACCESS_COARSE_LOCATION, -// android.Manifest.permission.BLUETOOTH -// }; + perlist = new String[]{ + android.Manifest.permission.BLUETOOTH_SCAN, + android.Manifest.permission.BLUETOOTH_ADVERTISE, + android.Manifest.permission.BLUETOOTH_CONNECT, + android.Manifest.permission.ACCESS_FINE_LOCATION, + android.Manifest.permission.ACCESS_COARSE_LOCATION, + android.Manifest.permission.BLUETOOTH + }; } initView();//初始化控件 } diff --git a/iFish7/src/main/java/com/ifish/activity/DeviceCameraListActivity.java b/iFish7/src/main/java/com/ifish/activity/DeviceCameraListActivity.java index 06392dddd..d364ac50b 100644 --- a/iFish7/src/main/java/com/ifish/activity/DeviceCameraListActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/DeviceCameraListActivity.java @@ -24,8 +24,8 @@ import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.RelativeLayout; import android.widget.TextView; -//jjia-push -//import com.clj.fastble.BleManager; +//jjia-xpush +import com.clj.fastble.BleManager; import com.ifish.adapter.GridViewCameraBaseAdapter; import com.ifish.adapter.GridViewDeviceBaseAdapter; import com.ifish.basebean.BaseBean; @@ -370,8 +370,8 @@ public class DeviceCameraListActivity extends BaseActivity { @Override public void success(BaseBean baseBean) { result = baseBean.result; - //jjia-push -// BleManager.getInstance().disconnectAllDevice(); + //jjia-xpush + BleManager.getInstance().disconnectAllDevice(); } @Override diff --git a/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java b/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java index 423522221..43469e6c4 100644 --- a/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java @@ -308,7 +308,7 @@ public class LoadingActivity extends BaseActivityNotAnim { private void initapp() { - // jjia-push + // jjia-xpush // IPushService // IIntentService PushManager.getInstance().preInit(this); diff --git a/iFish7/src/main/java/com/ifish/activity/newbind/BottomChoiceDialog.java b/iFish7/src/main/java/com/ifish/activity/newbind/BottomChoiceDialog.java index dae9ed4db..5ec78398d 100644 --- a/iFish7/src/main/java/com/ifish/activity/newbind/BottomChoiceDialog.java +++ b/iFish7/src/main/java/com/ifish/activity/newbind/BottomChoiceDialog.java @@ -148,8 +148,8 @@ public class BottomChoiceDialog extends DialogFragment implements View.OnClickLi lineAirKiss.setVisibility(View.VISIBLE); lineAP.setVisibility(View.VISIBLE); lineSmartConfig.setVisibility(View.GONE); - // jiablue 暂时隐藏 - lineBle.setVisibility(View.GONE); + // jiaxblue 暂时隐藏 +// lineBle.setVisibility(View.GONE); switch (curConnectType) { case SmartConfig: // 处理SmartConfig逻辑 diff --git a/iFish7/src/main/java/com/ifish/activity/newbind/NewBindDeviceActivity.java b/iFish7/src/main/java/com/ifish/activity/newbind/NewBindDeviceActivity.java index dec378755..1a91779d8 100644 --- a/iFish7/src/main/java/com/ifish/activity/newbind/NewBindDeviceActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/newbind/NewBindDeviceActivity.java @@ -29,15 +29,15 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; -//jjia-push -//import com.clj.fastble.BleManager; -//import com.clj.fastble.callback.BleGattCallback; -//import com.clj.fastble.callback.BleMtuChangedCallback; -//import com.clj.fastble.callback.BleNotifyCallback; -//import com.clj.fastble.callback.BleScanCallback; -//import com.clj.fastble.callback.BleWriteCallback; -//import com.clj.fastble.data.BleDevice; -//import com.clj.fastble.exception.BleException; +//jjia-xpush +import com.clj.fastble.BleManager; +import com.clj.fastble.callback.BleGattCallback; +import com.clj.fastble.callback.BleMtuChangedCallback; +import com.clj.fastble.callback.BleNotifyCallback; +import com.clj.fastble.callback.BleScanCallback; +import com.clj.fastble.callback.BleWriteCallback; +import com.clj.fastble.data.BleDevice; +import com.clj.fastble.exception.BleException; import com.ifish.activity.BindCameraActivity; import com.ifish.activity.BindTankActivity; import com.ifish.activity.BindTankPetActivity; @@ -151,8 +151,8 @@ public class NewBindDeviceActivity extends AppCompatActivity { devicetype = getIntent().getStringExtra("devicetype"); L.i("jjia----------------devicetype="+devicetype); airKissUtil.init(this,devicetype); - //jjia-push -// BleManager.getInstance().disconnectAllDevice(); + //jjia-xpush + BleManager.getInstance().disconnectAllDevice(); if ("bluetooth".equals(type)){ curConnectType = BlueTooth; }else { @@ -163,8 +163,8 @@ public class NewBindDeviceActivity extends AppCompatActivity { switchUIConnectType(curConnectType); if ("bluetooth".equals(type)){ // 主动去联网 - //jjia-push -// currentDevice = getIntent().getParcelableExtra("device"); + //jjia-xpush + currentDevice = getIntent().getParcelableExtra("device"); } EventBus.getDefault().register(this); @@ -472,40 +472,40 @@ public class NewBindDeviceActivity extends AppCompatActivity { - //jjia-push -// boolean support = BleManager.getInstance().isSupportBle(); -// if (!support){ -// ToastUtil.show(NewBindDeviceActivity.this,"当前设备不支持低功耗蓝牙"); -// } else { -// boolean enable = BleManager.getInstance().isBlueEnable(); -// if (enable){ -// if (TextUtils.isEmpty(type)){ -// blueScan(); -// }else { -// showDialog("开始连接蓝牙设备"); -// connectBle(); -// } -// }else { -// AlertDialog.Builder dialog = new AlertDialog.Builder(NewBindDeviceActivity.this, AlertDialog.THEME_HOLO_LIGHT); -// dialog.setCancelable(false); -// dialog.setMessage("蓝牙没有打开,现在去申请打开蓝牙,请允许后,再点击'确定'连接"); -// dialog.setPositiveButton("去申请", new DialogInterface.OnClickListener() { -// @Override -// public void onClick( -// DialogInterface dialog, -// int which) { -// BlueToothUtil.openBlueTooth(NewBindDeviceActivity.this); -// } -// }); -// dialog.setNegativeButton("拒绝", new DialogInterface.OnClickListener() { -// @Override -// public void onClick(DialogInterface dialog, int which) { -// finish(); -// } -// }); -// dialog.show(); -// } -// } + //jjia-xpush + boolean support = BleManager.getInstance().isSupportBle(); + if (!support){ + ToastUtil.show(NewBindDeviceActivity.this,"当前设备不支持低功耗蓝牙"); + } else { + boolean enable = BleManager.getInstance().isBlueEnable(); + if (enable){ + if (TextUtils.isEmpty(type)){ + blueScan(); + }else { + showDialog("开始连接蓝牙设备"); + connectBle(); + } + }else { + AlertDialog.Builder dialog = new AlertDialog.Builder(NewBindDeviceActivity.this, AlertDialog.THEME_HOLO_LIGHT); + dialog.setCancelable(false); + dialog.setMessage("蓝牙没有打开,现在去申请打开蓝牙,请允许后,再点击'确定'连接"); + dialog.setPositiveButton("去申请", new DialogInterface.OnClickListener() { + @Override + public void onClick( + DialogInterface dialog, + int which) { + BlueToothUtil.openBlueTooth(NewBindDeviceActivity.this); + } + }); + dialog.setNegativeButton("拒绝", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + dialog.show(); + } + } break; case APConnect: @@ -520,44 +520,44 @@ public class NewBindDeviceActivity extends AppCompatActivity { break; } } -//jjia-push -// private void blueScan(){ -// BleManager.getInstance().scan(new BleScanCallback() { -// @Override -// public void onScanFinished(List scanResultList) { -// -// if (currentDevice!=null){ -// connectBle(); -// }else { -// ToastUtil.show(NewBindDeviceActivity.this,"扫描结束,没有搜索到可用设备"); -// dismissDialog(); -// } -// } -// -// @Override -// public void onScanStarted(boolean success) { -//// ToastUtil.show(NewBindDeviceActivity.this,"开始扫描"); -// showDialog("正在搜索附近设备,请确保设备处于配网状态"); -// } -// -// @SuppressLint("MissingPermission") -// @Override -// public void onScanning(BleDevice bleDevice) { -// if (bleDevice!=null && bleDevice.getDevice()!=null){ -// BluetoothDevice bean = bleDevice.getDevice(); -// if (!TextUtils.isEmpty(bean.getName()) && bean.getName().startsWith("ifish")){ -// currentDevice = bleDevice; -//// tvname.setText(bean.getName()+bean.getAddress()); -// BleManager.getInstance().cancelScan(); -// } -// L.i(bean.getName()+"jjia---------"+bean.getAddress()); -// } -// } -// }); -// } +//jjia-xpush + private void blueScan(){ + BleManager.getInstance().scan(new BleScanCallback() { + @Override + public void onScanFinished(List scanResultList) { + + if (currentDevice!=null){ + connectBle(); + }else { + ToastUtil.show(NewBindDeviceActivity.this,"扫描结束,没有搜索到可用设备"); + dismissDialog(); + } + } + + @Override + public void onScanStarted(boolean success) { +// ToastUtil.show(NewBindDeviceActivity.this,"开始扫描"); + showDialog("正在搜索附近设备,请确保设备处于配网状态"); + } + + @SuppressLint("MissingPermission") + @Override + public void onScanning(BleDevice bleDevice) { + if (bleDevice!=null && bleDevice.getDevice()!=null){ + BluetoothDevice bean = bleDevice.getDevice(); + if (!TextUtils.isEmpty(bean.getName()) && bean.getName().startsWith("ifish")){ + currentDevice = bleDevice; +// tvname.setText(bean.getName()+bean.getAddress()); + BleManager.getInstance().cancelScan(); + } + L.i(bean.getName()+"jjia---------"+bean.getAddress()); + } + } + }); + } private boolean isJump = false; - //jjia-push -// BleDevice currentDevice; + //jjia-xpush + BleDevice currentDevice; /** * 1.跳转设置页面连接ifish-xxx的wifi,连接成功后返回 */ @@ -636,142 +636,142 @@ public class NewBindDeviceActivity extends AppCompatActivity { } } } - //jjia-push + //jjia-xpush private String device_mac; -// private void openNotify(){ -// BleManager.getInstance().notify(currentDevice, SERVICE_UUID, WRITE_UUID, new BleNotifyCallback() { -// @Override -// public void onNotifySuccess() { -// sendBleData(); -// } -// -// @Override -// public void onNotifyFailure(BleException exception) { -//// dismissProgressDialogCancelble(); -// dismissDialog(); -// } -// -// @Override -// public void onCharacteristicChanged(byte[] data) { -// -// if (data!=null && data.length>0){ -// int check_code = data[1]; -// int length = data[14]; -// byte[] dataByte = new byte[length]; -// for (int i = 0; i < dataByte.length; i++) { -// dataByte[i] = data[i]; -// } -// -// Object object = ModelCodec.deCode(dataByte,Commons.IoBuffer); -// if (object!=null && object instanceof BackFunctionCode7_11){ -// BackFunctionCode7_11 model = (BackFunctionCode7_11) object; -// String status = ByteUtil.toHex(model.getStatus()); -// device_mac = ByteUtil.bytesToHexString(model.getSrc()); -// -// -// dismissDialog(); -// if (!TextUtils.isEmpty(device_mac)){ -// showDialog("正在绑定设备..."); -// connectDevice.cancel(); -// connectDevice.start(); -// } -//// checkoutMac(device_mac); -// } -// L.i("jjia-------check_code-"+check_code); -// L.i("jjia-------length-"+length); -// L.i("jjia-------device_mac-"+device_mac); -// } -// } -// }); -// } + private void openNotify(){ + BleManager.getInstance().notify(currentDevice, SERVICE_UUID, WRITE_UUID, new BleNotifyCallback() { + @Override + public void onNotifySuccess() { + sendBleData(); + } + + @Override + public void onNotifyFailure(BleException exception) { +// dismissProgressDialogCancelble(); + dismissDialog(); + } + + @Override + public void onCharacteristicChanged(byte[] data) { + + if (data!=null && data.length>0){ + int check_code = data[1]; + int length = data[14]; + byte[] dataByte = new byte[length]; + for (int i = 0; i < dataByte.length; i++) { + dataByte[i] = data[i]; + } + + Object object = ModelCodec.deCode(dataByte,Commons.IoBuffer); + if (object!=null && object instanceof BackFunctionCode7_11){ + BackFunctionCode7_11 model = (BackFunctionCode7_11) object; + String status = ByteUtil.toHex(model.getStatus()); + device_mac = ByteUtil.bytesToHexString(model.getSrc()); + + + dismissDialog(); + if (!TextUtils.isEmpty(device_mac)){ + showDialog("正在绑定设备..."); + connectDevice.cancel(); + connectDevice.start(); + } +// checkoutMac(device_mac); + } + L.i("jjia-------check_code-"+check_code); + L.i("jjia-------length-"+length); + L.i("jjia-------device_mac-"+device_mac); + } + } + }); + } int devicePosition = 0; - //jjia-push -// private void sendBleData(){ -// -// String ssid = tvWifiName.getText().toString(); -// String pwd = tvWifiPwd.getText().toString(); -// -// OrderDeviceConnectModel model = OrderModel.OrderDeviceConnectModel(ssid, pwd,true);//设置正式环境域名 -// byte[] data = ModelCodec.enCode(model, Commons.IoBuffer); -// BleManager.getInstance().write(currentDevice, SERVICE_UUID, WRITE_UUID, data,false, new BleWriteCallback() { -// @Override -// public void onWriteSuccess(int current, int total, byte[] justWrite) { -// -// L.i("jjia-------------ssid 发送"); -// } -// -// @Override -// public void onWriteFailure(BleException exception) { -// -// } -// }); -// } - //jjia-push -// private void toReset(){ -// ResetDeviceModel model = OrderModel.resetDevice();//设置正式环境域名 -// byte[] data = ModelCodec.enCode(model); -//// data = new byte[1]; -// -//// QueryTempeSettingModel xx = OrderModel.OrderQueryTempeSettingModel(device_mac); -//// byte[] data = ModelCodec.enCode(xx); -// BleManager.getInstance().write(currentDevice, SERVICE_UUID, WRITE_UUID, data,false, new BleWriteCallback() { -// @Override -// public void onWriteSuccess(int current, int total, byte[] justWrite) { -// L.i("jjia-------------重启 发送 成功-"); -// } -// -// @Override -// public void onWriteFailure(BleException exception) { -// L.i("jjia-------------重启 发送 失败"+exception.toString()); -// } -// }); -// } + //jjia-xpush + private void sendBleData(){ + + String ssid = tvWifiName.getText().toString(); + String pwd = tvWifiPwd.getText().toString(); + + OrderDeviceConnectModel model = OrderModel.OrderDeviceConnectModel(ssid, pwd,true);//设置正式环境域名 + byte[] data = ModelCodec.enCode(model, Commons.IoBuffer); + BleManager.getInstance().write(currentDevice, SERVICE_UUID, WRITE_UUID, data,false, new BleWriteCallback() { + @Override + public void onWriteSuccess(int current, int total, byte[] justWrite) { + + L.i("jjia-------------ssid 发送"); + } + + @Override + public void onWriteFailure(BleException exception) { + + } + }); + } + //jjia-xpush + private void toReset(){ + ResetDeviceModel model = OrderModel.resetDevice();//设置正式环境域名 + byte[] data = ModelCodec.enCode(model); +// data = new byte[1]; + +// QueryTempeSettingModel xx = OrderModel.OrderQueryTempeSettingModel(device_mac); +// byte[] data = ModelCodec.enCode(xx); + BleManager.getInstance().write(currentDevice, SERVICE_UUID, WRITE_UUID, data,false, new BleWriteCallback() { + @Override + public void onWriteSuccess(int current, int total, byte[] justWrite) { + L.i("jjia-------------重启 发送 成功-"); + } + + @Override + public void onWriteFailure(BleException exception) { + L.i("jjia-------------重启 发送 失败"+exception.toString()); + } + }); + } public static final String SERVICE_UUID = "000000ff-0000-1000-8000-00805f9b34fb"; //蓝牙通讯服务 public static final String READ_UUID = "0000ff01-0000-1000-8000-00805f9b34fb"; //读特征 public static final String WRITE_UUID = "0000ff01-0000-1000-8000-00805f9b34fb"; //写特征 - //jjia-push -// private void connectBle(){ -// BleManager.getInstance().connect(currentDevice, new BleGattCallback() { -// @Override -// public void onStartConnect() { -// showDialog("开始连接蓝牙设备"); -// } -// -// @Override -// public void onConnectFail(BleDevice bleDevice, BleException exception) { -// ToastUtil.show(NewBindDeviceActivity.this,"连接蓝牙设备失败,请重试"); -// dismissDialog(); -// } -// -// @Override -// public void onConnectSuccess(BleDevice bleDevice, BluetoothGatt gatt, int status) { -//// ToastUtil.show(NewBindDeviceActivity.this,"蓝牙连接成功"); -//// setMessage("蓝牙连接成功"); -// BleManager.getInstance().setMtu(bleDevice, 512, new BleMtuChangedCallback() { -// @Override -// public void onSetMTUFailure(BleException exception) { -// L.i("jjia-------MTU--"+exception.toString()); -// dismissDialog(); -// } -// -// @Override -// public void onMtuChanged(int mtu) { -// L.i("jjia-------MTU--"+mtu); -// openNotify(); -// } -// }); -// } -// -// @Override -// public void onDisConnected(boolean isActiveDisConnected, BleDevice device, BluetoothGatt gatt, int status) { -//// ToastUtil.show(NewBindDeviceActivity.this,"连接断开了"); -// } -// }); -// } + //jjia-xpush + private void connectBle(){ + BleManager.getInstance().connect(currentDevice, new BleGattCallback() { + @Override + public void onStartConnect() { + showDialog("开始连接蓝牙设备"); + } + + @Override + public void onConnectFail(BleDevice bleDevice, BleException exception) { + ToastUtil.show(NewBindDeviceActivity.this,"连接蓝牙设备失败,请重试"); + dismissDialog(); + } + + @Override + public void onConnectSuccess(BleDevice bleDevice, BluetoothGatt gatt, int status) { +// ToastUtil.show(NewBindDeviceActivity.this,"蓝牙连接成功"); +// setMessage("蓝牙连接成功"); + BleManager.getInstance().setMtu(bleDevice, 512, new BleMtuChangedCallback() { + @Override + public void onSetMTUFailure(BleException exception) { + L.i("jjia-------MTU--"+exception.toString()); + dismissDialog(); + } + + @Override + public void onMtuChanged(int mtu) { + L.i("jjia-------MTU--"+mtu); + openNotify(); + } + }); + } + + @Override + public void onDisConnected(boolean isActiveDisConnected, BleDevice device, BluetoothGatt gatt, int status) { +// ToastUtil.show(NewBindDeviceActivity.this,"连接断开了"); + } + }); + } private Activity act; private ConnectDevice connectDevice; private boolean isContinue = true; @@ -791,8 +791,8 @@ public class NewBindDeviceActivity extends AppCompatActivity { @Override public int compareTo(Boolean available) { if (available) { - //jjia-push -// toReset(); + //jjia-xpush + toReset(); isContinue = false; connectDevice.cancel(); L.i("jjia-----------调用绑定接口---"); @@ -1155,23 +1155,23 @@ public class NewBindDeviceActivity extends AppCompatActivity { // myProgressDialogCancelble = null; // } // } - //jjia-push -// List deviceList; + //jjia-xpush + List deviceList; @SuppressLint("MissingPermission") private void findConencted(){ - //jjia-push -// deviceList = BleManager.getInstance().getAllConnectedDevice(); -// if (deviceList!=null && deviceList.size()>0){ -// for (BleDevice item:deviceList){ -// if (item!=null){ -// L.i("jjia-----------"+item.getDevice().getName()); -// } -// } -// -// }else { -// L.i("jjia--------没有连接的蓝牙---"); -// } + //jjia-xpush + deviceList = BleManager.getInstance().getAllConnectedDevice(); + if (deviceList!=null && deviceList.size()>0){ + for (BleDevice item:deviceList){ + if (item!=null){ + L.i("jjia-----------"+item.getDevice().getName()); + } + } + + }else { + L.i("jjia--------没有连接的蓝牙---"); + } } @Override diff --git a/iFish7/src/main/java/com/ifish/basebean/EventBean.java b/iFish7/src/main/java/com/ifish/basebean/EventBean.java index d31933755..93223a536 100644 --- a/iFish7/src/main/java/com/ifish/basebean/EventBean.java +++ b/iFish7/src/main/java/com/ifish/basebean/EventBean.java @@ -10,9 +10,9 @@ public class EventBean { public String name; public String value; public int index = 0; - // jiablue -// public static String BLUETOOTH_START_SCAN = "start_scan"; -// public static String BLUETOOTH_STOP_SCAN = "stop_scan"; + // jiaxblue + public static String BLUETOOTH_START_SCAN = "start_scan"; + public static String BLUETOOTH_STOP_SCAN = "stop_scan"; public static String TAB_INDEX = "tab_index"; public static String LINK_FINISH = "link_finish"; public static String CHANGE_DEVICE_NAME = "change_device_name"; diff --git a/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java b/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java index 574c47061..5f3c0e020 100644 --- a/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java +++ b/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java @@ -19,16 +19,15 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.multidex.MultiDexApplication; -//import com.clj.fastble.BleManager; -//import com.clj.fastble.scan.BleScanRuleConfig; +import com.clj.fastble.BleManager; +import com.clj.fastble.scan.BleScanRuleConfig; import com.ifish.activity.BuildConfig; +import com.ifish.basebean.EventBean; import com.ifish.utils.ActivityManager; import com.ifish.utils.ImageDownLoader; import com.ifish.utils.L; import com.ifish.utils.SystemUtil; import com.ifish.utils.TrustAllCerts; -//import com.igexin.sdk.PushManager; -import com.igexin.sdk.PushManager; import com.p2p.core.P2PSpecial.P2PSpecial; import com.squareup.picasso.Picasso; @@ -41,6 +40,8 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; + +import de.greenrobot.event.EventBus; import okhttp3.OkHttpClient; /** @@ -77,19 +78,19 @@ public class BaseApplication extends MultiDexApplication { P2PSpecial.getInstance().init(app, APPID, APPToken, APPVersion); initLog(); initPicasso(); - //jjia-push -// BleManager.getInstance().init(this); + //jjia-xpush + BleManager.getInstance().init(this); UUID[] uuids = {UUID.fromString(SERVICE_UUID)}; - //jjia-push -// BleScanRuleConfig scanRuleConfig = new BleScanRuleConfig.Builder() -// .setServiceUuids(uuids) // 只扫描指定的服务的设备,可选 -//// .setDeviceName(true, names) // 只扫描指定广播名的设备,可选 -//// .setDeviceMac(mac) // 只扫描指定mac的设备,可选 -//// .setAutoConnect(isAutoConnect) // 连接时的autoConnect参数,可选,默认false -// .setScanTimeOut(30000) // 扫描超时时间30S,可选,默认10秒;小于等于0表示不限制扫描时间 -// .build(); -// BleManager.getInstance().initScanRule(scanRuleConfig); + //jjia-xpush + BleScanRuleConfig scanRuleConfig = new BleScanRuleConfig.Builder() + .setServiceUuids(uuids) // 只扫描指定的服务的设备,可选 +// .setDeviceName(true, names) // 只扫描指定广播名的设备,可选 +// .setDeviceMac(mac) // 只扫描指定mac的设备,可选 +// .setAutoConnect(isAutoConnect) // 连接时的autoConnect参数,可选,默认false + .setScanTimeOut(30000) // 扫描超时时间30S,可选,默认10秒;小于等于0表示不限制扫描时间 + .build(); + BleManager.getInstance().initScanRule(scanRuleConfig); registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { @@ -103,9 +104,9 @@ public class BaseApplication extends MultiDexApplication { if (count==0){ Activity activityName = ActivityManager.getInstance().lastActivity(); if (activityName!=null && activityName.toString().contains("MainTabActivity")){ - // jiablue -// EventBean eventBean = new EventBean(EventBean.BLUETOOTH_START_SCAN); -// EventBus.getDefault().post(eventBean); + // jiaxblue + EventBean eventBean = new EventBean(EventBean.BLUETOOTH_START_SCAN); + EventBus.getDefault().post(eventBean); } } count++; @@ -128,9 +129,9 @@ public class BaseApplication extends MultiDexApplication { if (count==0){ Activity activityName = ActivityManager.getInstance().lastActivity(); if (activityName!=null && activityName.toString().contains("MainTabActivity")){ - // jiablue -// EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN); -// EventBus.getDefault().post(eventBean); + // jiaxblue + EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN); + EventBus.getDefault().post(eventBean); } } } diff --git a/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java b/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java index c8d3fc26c..5390d0a0e 100644 --- a/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java +++ b/iFish7/src/main/java/com/ifish/fragment/DeviceFragment.java @@ -52,11 +52,11 @@ import androidx.annotation.NonNull; import androidx.core.app.ActivityCompat; import com.bumptech.glide.Glide; -//jjia-push -//import com.clj.fastble.BleManager; -//import com.clj.fastble.callback.BleScanCallback; -//import com.clj.fastble.data.BleDevice; -//import com.clj.fastble.data.BleScanState; +//jjia-xpush +import com.clj.fastble.BleManager; +import com.clj.fastble.callback.BleScanCallback; +import com.clj.fastble.data.BleDevice; +import com.clj.fastble.data.BleScanState; import com.ifish.activity.BindTwoDeviceActivity; import com.ifish.activity.DeviceInstructionActivity; import com.ifish.activity.InformationListActivity; @@ -1132,8 +1132,8 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi lv_camera.setAdapter(cameraAdapter); setUserInfo(); - // jiablue -// startDownTimer(); + // jiaxblue + startDownTimer(); } @@ -1591,9 +1591,9 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi AnimationUtil.startAnimation(getActivity()); break; case R.id.rl_adddevice: -// jiablue -// EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN); -// EventBus.getDefault().post(eventBean); +// jiaxblue + EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN); + EventBus.getDefault().post(eventBean); showPermissionHint(); @@ -1909,42 +1909,42 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi } firstResult = firstResult + HttpManager.PAGESIZE; } - //jjia-push -// private void initBooth(){ -// boolean enable = BleManager.getInstance().isBlueEnable(); -// if (enable) { -// BleManager.getInstance().scan(new BleScanCallback() { -// @Override -// public void onScanFinished(List scanResultList) { -// if (currentDevice!=null){ // 扫描结束,有设备 -// L.i("jjjia-----------scan---"); -// showDevice(); -// } -// } -// -// @Override -// public void onScanStarted(boolean success) { -// -// } -// -// @SuppressLint("MissingPermission") -// @Override -// public void onScanning(BleDevice bleDevice) { -// if (bleDevice!=null && bleDevice.getDevice()!=null){ -// BluetoothDevice bean = bleDevice.getDevice(); -// if (!TextUtils.isEmpty(bean.getName()) && bean.getName().startsWith("ifish")){ -// currentDevice = bleDevice; -// BleManager.getInstance().cancelScan(); -// } -// L.i(bean.getName()+"jjia------mac---"+bean.getAddress()); -// } -// } -// }); -// } -// -// } - //jjia-push -// BleDevice currentDevice; + //jjia-xpush + private void initBooth(){ + boolean enable = BleManager.getInstance().isBlueEnable(); + if (enable) { + BleManager.getInstance().scan(new BleScanCallback() { + @Override + public void onScanFinished(List scanResultList) { + if (currentDevice!=null){ // 扫描结束,有设备 + L.i("jjjia-----------scan---"); + showDevice(); + } + } + + @Override + public void onScanStarted(boolean success) { + + } + + @SuppressLint("MissingPermission") + @Override + public void onScanning(BleDevice bleDevice) { + if (bleDevice!=null && bleDevice.getDevice()!=null){ + BluetoothDevice bean = bleDevice.getDevice(); + if (!TextUtils.isEmpty(bean.getName()) && bean.getName().startsWith("ifish")){ + currentDevice = bleDevice; + BleManager.getInstance().cancelScan(); + } + L.i(bean.getName()+"jjia------mac---"+bean.getAddress()); + } + } + }); + } + + } + //jjia-xpush + BleDevice currentDevice; public void onEventMainThread(BluetoothDevice event) { } @@ -1953,33 +1953,33 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi private boolean isShowEd = false; private int currentIndex = 0; -// jiablue -// public void onEventMainThread(EventBean eventBean){ -// if (eventBean!= null){ -// if (EventBean.BLUETOOTH_START_SCAN.equals(eventBean.name)){ -// if (!isShowEd){ -// initBooth(); -// } -// }else if (EventBean.BLUETOOTH_STOP_SCAN.equals(eventBean.name)){ -// if (!isShowIng){ -// currentDevice = null; -// } -// BleManager.getInstance().cancelScan(); -// }else -// -// if (EventBean.TAB_INDEX.equals(eventBean.name)){ -// currentIndex = eventBean.index; -// L.i("jjia-----tab_index--"+eventBean.index); -// if (currentIndex == 0){ -// startDownTimer(); -// }else { -// oonPause(); -// } -// }else if (EventBean.HEADER.equals(eventBean.name)){ -// Glide.with(getActivity()).load(eventBean.value).into(iv_head); -// } -// } -// } +// jiaxblue + public void onEventMainThread(EventBean eventBean){ + if (eventBean!= null){ + if (EventBean.BLUETOOTH_START_SCAN.equals(eventBean.name)){ + if (!isShowEd){ + initBooth(); + } + }else if (EventBean.BLUETOOTH_STOP_SCAN.equals(eventBean.name)){ + if (!isShowIng){ + currentDevice = null; + } + BleManager.getInstance().cancelScan(); + }else + + if (EventBean.TAB_INDEX.equals(eventBean.name)){ + currentIndex = eventBean.index; + L.i("jjia-----tab_index--"+eventBean.index); + if (currentIndex == 0){ + startDownTimer(); + }else { + oonPause(); + } + }else if (EventBean.HEADER.equals(eventBean.name)){ + Glide.with(getActivity()).load(eventBean.value).into(iv_head); + } + } + } private void showPermissionHint(){ IosAlertDialog dialog = new IosAlertDialog(getContext()).builder(); @@ -2025,8 +2025,8 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi intent.setClass(requireActivity(), NewBindDeviceActivity.class); intent.putExtra("title", "连接水族箱"); intent.putExtra("type", "bluetooth"); - //jjia-push -// intent.putExtra("device", currentDevice); + //jjia-xpush + intent.putExtra("device", currentDevice); startActivity(intent); AnimationUtil.finishAnimation(requireActivity()); }); @@ -2045,22 +2045,22 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi @Override public void onTick(long l) { L.i("jjia-----dowmCount--"+dowmCount); - //jjia-push -// if (dowmCount%6==0){ -// BleScanState scanState = getScanState(); -// L.i("jjia-----------timer--"+scanState); -// if (BleScanState.STATE_IDLE.equals(scanState)){ -// if (isShowIng){ -// L.i("jjia-----已经扫描到设备了,等待反馈-"); -// closeDownTimer(); -// }else { -// initBooth(); -// L.i("jjia-----开始扫描-"); -// } -// }else { -// L.i("jjia----timer--上一次的扫描还在继续中-"); -// } -// } + //jjia-xpush + if (dowmCount%6==0){ + BleScanState scanState = getScanState(); + L.i("jjia-----------timer--"+scanState); + if (BleScanState.STATE_IDLE.equals(scanState)){ + if (isShowIng){ + L.i("jjia-----已经扫描到设备了,等待反馈-"); + closeDownTimer(); + }else { + initBooth(); + L.i("jjia-----开始扫描-"); + } + }else { + L.i("jjia----timer--上一次的扫描还在继续中-"); + } + } dowmCount++; } @@ -2083,10 +2083,10 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi countDownTimer = null; } } - //jjia-push -// private BleScanState getScanState(){ -// return BleManager.getInstance().getScanSate(); -// } + //jjia-xpush + private BleScanState getScanState(){ + return BleManager.getInstance().getScanSate(); + } @Override public void onPause() { @@ -2096,14 +2096,14 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi private void oonPause(){ closeDownTimer(); - //jjia-push -// BleScanState scanState = getScanState(); -// if (BleScanState.STATE_SCANNING.equals(scanState)) { -// BleManager.getInstance().cancelScan(); -// L.i("jjia---扫描暂停----------"); -// } else { -// -// } -// L.i("jjia---扫描暂停-"+scanState); + //jjia-xpush + BleScanState scanState = getScanState(); + if (BleScanState.STATE_SCANNING.equals(scanState)) { + BleManager.getInstance().cancelScan(); + L.i("jjia---扫描暂停----------"); + } else { + + } + L.i("jjia---扫描暂停-"+scanState); } } diff --git a/iFish7/src/main/java/com/ifish/fragment/MineFragment.java b/iFish7/src/main/java/com/ifish/fragment/MineFragment.java index c2b96684d..213093ca9 100644 --- a/iFish7/src/main/java/com/ifish/fragment/MineFragment.java +++ b/iFish7/src/main/java/com/ifish/fragment/MineFragment.java @@ -34,8 +34,8 @@ import android.widget.TextView; import android.widget.Toast; import com.bumptech.glide.Glide; -//jjia-push -//import com.clj.fastble.BleManager; +//jjia-xpush +import com.clj.fastble.BleManager; import com.ifish.activity.AboutActivity; import com.ifish.activity.BindTwoDeviceActivity; import com.ifish.activity.CaptureActivity;