This commit is contained in:
jia 2025-01-06 20:29:04 +08:00
parent 10d0be4df4
commit 458a80bc00
11 changed files with 383 additions and 385 deletions

View File

@ -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'
// ()

View File

@ -11,9 +11,6 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- // jiablue-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />-->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
@ -37,14 +34,14 @@
<!-- 蓝牙权限需求 -->
<!-- // jiablue-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH" />-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> &lt;!&ndash; 安卓12新增的蓝牙权限 &ndash;&gt;-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> &lt;!&ndash; 定位权限, 蓝牙搜索需要 &ndash;&gt;-->
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<!-- // jiaxblue-->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- 安卓12新增的蓝牙权限 -->
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <!-- 定位权限, 蓝牙搜索需要 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 使用相机 -->
<!--
<uses-feature
@ -107,7 +104,7 @@
android:usesCleartextTraffic="true"
tools:replace="android:icon,android:theme,android:allowBackup">
<!-- 推送服务 jjia-push-->
<!-- 推送服务 jjia-xpush-->
<service
android:name="com.ifish.push.IPushService"
android:exported="false"

View File

@ -47,14 +47,14 @@ public class BindTwoDeviceActivity extends BaseActivity {
initTitle("选择设备");
if(Build.VERSION.SDK_INT >= 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();//初始化控件
}

View File

@ -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<Device> baseBean) {
result = baseBean.result;
//jjia-push
// BleManager.getInstance().disconnectAllDevice();
//jjia-xpush
BleManager.getInstance().disconnectAllDevice();
}
@Override

View File

@ -308,7 +308,7 @@ public class LoadingActivity extends BaseActivityNotAnim {
private void initapp() {
// jjia-push
// jjia-xpush
// IPushService
// IIntentService
PushManager.getInstance().preInit(this);

View File

@ -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逻辑

View File

@ -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<BleDevice> 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<BleDevice> 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<BleDevice> deviceList;
//jjia-xpush
List<BleDevice> 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

View File

@ -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";

View File

@ -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);
}
}
}

View File

@ -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<BleDevice> 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<BleDevice> 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);
}
}

View File

@ -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;