| android:name="android.support.FILE_PROVIDER_PATHS" | android:name="android.support.FILE_PROVIDER_PATHS" | ||||
| android:resource="@xml/file_paths" /> | android:resource="@xml/file_paths" /> | ||||
| </provider> | </provider> | ||||
| <service android:name="com.pingwang.bluetoothlib.server.ELinkBleServer"/> | |||||
| </application> | </application> | ||||
| </manifest> | </manifest> | 
| import android.widget.TextView; | import android.widget.TextView; | ||||
| import com.besthealth.bhBodyComposition120.BhBodyComposition; | import com.besthealth.bhBodyComposition120.BhBodyComposition; | ||||
| import com.pingwang.bluetoothlib.AILinkSDK; | |||||
| import com.pingwang.bluetoothlib.utils.BleLog; | import com.pingwang.bluetoothlib.utils.BleLog; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| initView(); | initView(); | ||||
| initData(); | initData(); | ||||
| initListener(); | initListener(); | ||||
| int bodyComposition = new BhBodyComposition().getBodyComposition(); | |||||
| L.i("bodyComposition:" + bodyComposition); | |||||
| // Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:10086")); | |||||
| // Method setDefaultSim = null; | |||||
| // try { | |||||
| // setDefaultSim = TelephonyManager.class.getDeclaredMethod("setDefaultSim", Context.class, int.class, int.class); | |||||
| // setDefaultSim.invoke(null, this, 0, 0); | |||||
| // } catch (NoSuchMethodException e) { | |||||
| // e.printStackTrace(); | |||||
| // } catch (IllegalAccessException e) { | |||||
| // e.printStackTrace(); | |||||
| // } catch (InvocationTargetException e) { | |||||
| // e.printStackTrace(); | |||||
| // } | |||||
| // intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | |||||
| // startActivity(intent); | |||||
| } | } | ||||
| String version = getString(R.string.version) + ":" + BuildConfig.VERSION_NAME; | String version = getString(R.string.version) + ":" + BuildConfig.VERSION_NAME; | ||||
| ((TextView) findViewById(R.id.tv_app_version)).setText(version); | ((TextView) findViewById(R.id.tv_app_version)).setText(version); | ||||
| ActionBar supportActionBar = getSupportActionBar(); | ActionBar supportActionBar = getSupportActionBar(); | ||||
| if (supportActionBar != null) | |||||
| if (supportActionBar != null) { | |||||
| supportActionBar.setTitle(getString(R.string.app_name) + BuildConfig.VERSION_NAME); | supportActionBar.setTitle(getString(R.string.app_name) + BuildConfig.VERSION_NAME); | ||||
| } | |||||
| findViewById(R.id.btn_about).setOnClickListener(new View.OnClickListener() { | findViewById(R.id.btn_about).setOnClickListener(new View.OnClickListener() { | ||||
| @Override | @Override | ||||
| public void onClick(View v) { | public void onClick(View v) { | ||||
| }); | }); | ||||
| MyListener listener = new MyListener(); | MyListener listener = new MyListener(); | ||||
| // Button btn_shpy = findViewById(R.id.btn_sphy); | |||||
| // Button btn_tempgun = findViewById(R.id.btn_tempgun); | |||||
| // Button btn_temp = findViewById(R.id.btn_temp); | |||||
| // Button btn_baby = findViewById(R.id.btn_baby); | |||||
| // Button btn_height = findViewById(R.id.btn_height); | |||||
| // Button btn_ble = findViewById(R.id.btn_ble); | |||||
| // Button btn_weightScale = findViewById(R.id.btn_lock); | |||||
| // Button btn_ble_test = findViewById(R.id.btn_ble_test); | |||||
| // Button btnConnectTest = findViewById(R.id.btnConnectTest); | |||||
| // Button btn_ad_weight = findViewById(R.id.btn_ad_weight); | |||||
| // Button btn_ble_weight = findViewById(R.id.btn_ble_weight); | |||||
| // Button btn_wifi_ble_tooth = findViewById(R.id.btn_wifi_ble_tooth); | |||||
| // Button wifi_config = findViewById(R.id.wifi_config); | |||||
| // Button eight_scale = findViewById(R.id.eight_scale); | |||||
| // Button btn_ota = findViewById(R.id.btn_ota); | |||||
| // Button btn_wristband = findViewById(R.id.btn_wristband); | |||||
| // Button glucometer = findViewById(R.id.glucometer); | |||||
| // Button btn_broadcast_scale = findViewById(R.id.btn_broadcast_scale); | |||||
| // Button btn_broadcast_blood_oxygen = findViewById(R.id.btn_broadcast_blood_oxygen); | |||||
| // Button btn_smart_mask = findViewById(R.id.btn_smart_mask); | |||||
| // Button btn_bld = findViewById(R.id.btn_bld); | |||||
| // Button btn_bleBo = findViewById(R.id.btn_bleBo); | |||||
| // Button btn_coffeeScale = findViewById(R.id.btn_coffeeScale); | |||||
| // Button btn_scooter = findViewById(R.id.btn_scooter); | |||||
| // Button btn_shareCharger = findViewById(R.id.btn_shareCharger); | |||||
| // Button btn_transmission = findViewById(R.id.btn_transmission); | |||||
| // Button btn_wifi_ble_weight = findViewById(R.id.btn_wifi_ble_weight); | |||||
| // Button btn_baby_body_fat = findViewById(R.id.btn_baby_body_fat); | |||||
| mList.add(findViewById(R.id.btn_sphy)); | mList.add(findViewById(R.id.btn_sphy)); | ||||
| mList.add(findViewById(R.id.btn_tempgun)); | mList.add(findViewById(R.id.btn_tempgun)); | ||||
| mList.add(findViewById(R.id.btn_temp)); | mList.add(findViewById(R.id.btn_temp)); | ||||
| mList.add(findViewById(R.id.btn_baby)); | mList.add(findViewById(R.id.btn_baby)); | ||||
| mList.add(findViewById(R.id.btn_height)); | mList.add(findViewById(R.id.btn_height)); | ||||
| mList.add(findViewById(R.id.btn_ble)); | mList.add(findViewById(R.id.btn_ble)); | ||||
| // mList.add(findViewById(R.id.btn_lock)); | |||||
| mList.add(findViewById(R.id.btn_ble_test)); | mList.add(findViewById(R.id.btn_ble_test)); | ||||
| mList.add(findViewById(R.id.btnConnectTest)); | mList.add(findViewById(R.id.btnConnectTest)); | ||||
| mList.add(findViewById(R.id.btn_ad_weight)); | mList.add(findViewById(R.id.btn_ad_weight)); | ||||
| public void onClick(View v) { | public void onClick(View v) { | ||||
| startActivity(new Intent(mContext, RopeSkippingSetActivity.class)); | startActivity(new Intent(mContext, RopeSkippingSetActivity.class)); | ||||
| // Intent intent = new Intent(); | |||||
| // intent.setAction("android.media.action.STILL_IMAGE_CAMERA"); | |||||
| // intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | |||||
| // startActivity(intent); | |||||
| // | |||||
| // mHandler.postDelayed(new Runnable() { | |||||
| // @Override | |||||
| // public void run() { | |||||
| // try { | |||||
| // L.i("按下音量+ start"); | |||||
| // String keyCommand = "input keyevent " + KeyEvent.KEYCODE_VOLUME_UP; | |||||
| // Runtime runtime = Runtime.getRuntime(); | |||||
| // Process proc = runtime.exec(keyCommand); | |||||
| // L.i("按下音量+ stop"+proc.toString()); | |||||
| // } catch (IOException e) { | |||||
| // e.printStackTrace(); | |||||
| // } | |||||
| // | |||||
| // } | |||||
| // }, 5000); | |||||
| } | } | ||||
| }); | }); | ||||
| protected void initView() { | protected void initView() { | ||||
| BleLog.init("", "", true); | BleLog.init("", "", true); | ||||
| //connectDevice(BleValueBean bleValueBean);连接的时候需要传广播对象,否则返回的cid,vid,pid始终都是0 | //connectDevice(BleValueBean bleValueBean);连接的时候需要传广播对象,否则返回的cid,vid,pid始终都是0 | ||||
| // AILinkSDK.getInstance().init(getApplication(), new AILinkSDK.OnNewKeyListener() { | |||||
| // @Override | |||||
| // public boolean onNewKey(int cid, int vid, int pid) { | |||||
| // if (vid == 1) { | |||||
| // return true; | |||||
| // } | |||||
| // return false; | |||||
| // } | |||||
| // }); | |||||
| //每次连接之前都要设置一次,设置一次之后就一直有效 | //每次连接之前都要设置一次,设置一次之后就一直有效 | ||||
| //sdk | //sdk | ||||
| // AILinkBleManager.getInstance().init(mContext, new AILinkBleManager.onInitListener() { | // AILinkBleManager.getInstance().init(mContext, new AILinkBleManager.onInitListener() { | ||||
| super.onRequestPermissionsResult(requestCode, permissions, grantResults); | super.onRequestPermissionsResult(requestCode, permissions, grantResults); | ||||
| //请求权限被拒绝 | //请求权限被拒绝 | ||||
| if (requestCode != PERMISSION) | |||||
| if (requestCode != PERMISSION) { | |||||
| return; | return; | ||||
| } | |||||
| if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { | if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { | ||||
| initPermissions(); | initPermissions(); | ||||
| } else { | } else { | 
| import android.widget.EditText; | import android.widget.EditText; | ||||
| import android.widget.Toast; | import android.widget.Toast; | ||||
| import androidx.annotation.NonNull; | |||||
| import androidx.annotation.Nullable; | |||||
| import androidx.appcompat.app.ActionBar; | |||||
| import androidx.appcompat.app.AppCompatActivity; | |||||
| import androidx.core.app.ActivityCompat; | |||||
| import androidx.recyclerview.widget.LinearLayoutManager; | |||||
| import androidx.recyclerview.widget.RecyclerView; | |||||
| import com.pingwang.bluetoothlib.bean.BleValueBean; | import com.pingwang.bluetoothlib.bean.BleValueBean; | ||||
| import com.pingwang.bluetoothlib.config.BleConfig; | import com.pingwang.bluetoothlib.config.BleConfig; | ||||
| import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
| import java.util.UUID; | import java.util.UUID; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.adapter.StringAdapter; | import aicare.net.cn.sdk.ailinksdkdemoandroid.adapter.StringAdapter; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.config.AppConfig; | |||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.config.BleDeviceConfig; | import aicare.net.cn.sdk.ailinksdkdemoandroid.config.BleDeviceConfig; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.HintDataDialogFragment; | import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.HintDataDialogFragment; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.LoadingIosDialogFragment; | import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.LoadingIosDialogFragment; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.modules.weight_scale.WeightScaleActivity; | import aicare.net.cn.sdk.ailinksdkdemoandroid.modules.weight_scale.WeightScaleActivity; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.CheckPermissionUtils; | import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.CheckPermissionUtils; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.view.MyItemDecoration; | import aicare.net.cn.sdk.ailinksdkdemoandroid.view.MyItemDecoration; | ||||
| import androidx.annotation.NonNull; | |||||
| import androidx.annotation.Nullable; | |||||
| import androidx.appcompat.app.ActionBar; | |||||
| import androidx.appcompat.app.AppCompatActivity; | |||||
| import androidx.core.app.ActivityCompat; | |||||
| import androidx.recyclerview.widget.LinearLayoutManager; | |||||
| import androidx.recyclerview.widget.RecyclerView; | |||||
| import cn.net.aicare.modulelibrary.module.RopeSkipping.RopeSkippingBleData; | import cn.net.aicare.modulelibrary.module.RopeSkipping.RopeSkippingBleData; | ||||
| import cn.net.aicare.modulelibrary.module.scooter.SkateboardBleConfig; | import cn.net.aicare.modulelibrary.module.scooter.SkateboardBleConfig; | ||||
| super.onCreate(savedInstanceState); | super.onCreate(savedInstanceState); | ||||
| setContentView(R.layout.activity_show_ble); | setContentView(R.layout.activity_show_ble); | ||||
| ActionBar supportActionBar = getSupportActionBar(); | ActionBar supportActionBar = getSupportActionBar(); | ||||
| if (supportActionBar != null) | |||||
| if (supportActionBar != null) { | |||||
| supportActionBar.setTitle(getString(R.string.app_name) + BuildConfig.VERSION_NAME); | supportActionBar.setTitle(getString(R.string.app_name) + BuildConfig.VERSION_NAME); | ||||
| } | |||||
| Intent mUserService = new Intent(this.getApplicationContext(), ELinkBleServer.class); | Intent mUserService = new Intent(this.getApplicationContext(), ELinkBleServer.class); | ||||
| //核心用户服务 | //核心用户服务 | ||||
| startService(mUserService); | startService(mUserService); | ||||
| int type = mType;//默认婴儿秤 | int type = mType;//默认婴儿秤 | ||||
| switch (type) { | switch (type) { | ||||
| case BleDeviceConfig.BABY_SCALE: | case BleDeviceConfig.BABY_SCALE: | ||||
| //婴儿秤 | |||||
| intent.setClass(ShowBleActivity.this, BabyCmdActivity.class); | intent.setClass(ShowBleActivity.this, BabyCmdActivity.class); | ||||
| break; | break; | ||||
| case BleDeviceConfig.INFRARED_THERMOMETER: | case BleDeviceConfig.INFRARED_THERMOMETER: | ||||
| //额温枪 | |||||
| intent.setClass(ShowBleActivity.this, TempGunCmdActivity.class); | intent.setClass(ShowBleActivity.this, TempGunCmdActivity.class); | ||||
| break; | break; | ||||
| case BleDeviceConfig.BLOOD_PRESSURE: | case BleDeviceConfig.BLOOD_PRESSURE: | ||||
| case BleDeviceConfig.SPHY_WIFI_BLE: | case BleDeviceConfig.SPHY_WIFI_BLE: | ||||
| //血压计 | |||||
| intent.setClass(ShowBleActivity.this, SphyCmdActivity.class); | intent.setClass(ShowBleActivity.this, SphyCmdActivity.class); | ||||
| break; | break; | ||||
| case BleDeviceConfig.THERMOMETER: | case BleDeviceConfig.THERMOMETER: | ||||
| //体温计 | |||||
| intent.setClass(ShowBleActivity.this, TempCmdActivity.class); | intent.setClass(ShowBleActivity.this, TempCmdActivity.class); | ||||
| break; | break; | ||||
| case BleDeviceConfig.HEIGHT_METER: | case BleDeviceConfig.HEIGHT_METER: | ||||
| //身高仪 | |||||
| intent.setClass(ShowBleActivity.this, HeightCmdActivity.class); | intent.setClass(ShowBleActivity.this, HeightCmdActivity.class); | ||||
| break; | break; | ||||
| case BleDeviceConfig.WEIGHT_BODY_FAT_SCALE: | case BleDeviceConfig.WEIGHT_BODY_FAT_SCALE: | ||||
| //体重体脂称 | |||||
| intent.setClass(ShowBleActivity.this, WeightScaleBleActivity.class); | intent.setClass(ShowBleActivity.this, WeightScaleBleActivity.class); | ||||
| break; | break; | ||||
| case BleDeviceConfig.WEIGHT_BODY_FAT_SCALE_AD: | case BleDeviceConfig.WEIGHT_BODY_FAT_SCALE_AD: | ||||
| //体重体脂称 | |||||
| intent.setClass(ShowBleActivity.this, ADWeightScaleCmdActivity.class); | intent.setClass(ShowBleActivity.this, ADWeightScaleCmdActivity.class); | ||||
| break; | break; | ||||
| case BleDeviceConfig.WEIGHT_BODY_FAT_SCALE_WIFI_BLE: | case BleDeviceConfig.WEIGHT_BODY_FAT_SCALE_WIFI_BLE: | ||||
| break; | break; | ||||
| case BleDeviceConfig.FIND_DEVICE: | case BleDeviceConfig.FIND_DEVICE: | ||||
| // 寻物器 | // 寻物器 | ||||
| // intent.setClass(ShowBleActivity.this, FindDeviceActivity.class); | |||||
| intent.setClass(ShowBleActivity.this, FindDeviceNewActivity.class); | intent.setClass(ShowBleActivity.this, FindDeviceNewActivity.class); | ||||
| BleConfig.setHandshakeStatus(mac, false); | BleConfig.setHandshakeStatus(mac, false); | ||||
| break; | break; | ||||
| intent.setClass(ShowBleActivity.this, FoodTempActivity.class); | intent.setClass(ShowBleActivity.this, FoodTempActivity.class); | ||||
| break; | break; | ||||
| case BleDeviceConfig.HEIGHT_BODY_FAT: | case BleDeviceConfig.HEIGHT_BODY_FAT: | ||||
| //身高体脂秤 | |||||
| intent.setClass(ShowBleActivity.this, HeightWeightScaleActivity.class); | intent.setClass(ShowBleActivity.this, HeightWeightScaleActivity.class); | ||||
| break; | break; | ||||
| case BleDeviceConfig.TEMP_Humidity: | case BleDeviceConfig.TEMP_Humidity: | ||||
| } | } | ||||
| /** | |||||
| * 检查设备 | |||||
| * | |||||
| * @param scanCid 扫描cid | |||||
| * @param cid cid | |||||
| * @param nameAndMac 名字和mac过滤 | |||||
| * @return boolean | |||||
| */ | |||||
| private boolean isCheckDevice(int scanCid, int cid, boolean nameAndMac) { | private boolean isCheckDevice(int scanCid, int cid, boolean nameAndMac) { | ||||
| boolean okDevice = false; | boolean okDevice = false; | ||||
| if (scanCid == BleDeviceConfig.BLOOD_PRESSURE) { | if (scanCid == BleDeviceConfig.BLOOD_PRESSURE) { | 
| import android.app.Application; | import android.app.Application; | ||||
| import com.pingwang.bluetoothlib.AILinkSDK; | |||||
| public class MyApplication extends Application { | public class MyApplication extends Application { | ||||
| private static MyApplication sInstance; | private static MyApplication sInstance; | ||||
| public void onCreate() { | public void onCreate() { | ||||
| super.onCreate(); | super.onCreate(); | ||||
| sInstance = this; | sInstance = this; | ||||
| AILinkSDK.getInstance().init(this); | |||||
| } | } | ||||
| public static MyApplication getInstance(){ | public static MyApplication getInstance(){ |