登录
首页 » Android » 蓝牙温度计 android客户端程序

蓝牙温度计 android客户端程序

于 2022-02-01 发布 文件大小:366.53 kB
0 157
下载积分: 2 下载次数: 2

代码说明:

BLE 低功耗蓝牙体温计,支持多个体温计同时测量,可设定精度,同步时间,可现实变化曲线与图形;包含完整的源代码,直接导入即可使用。微连 智能体温计是一款使用电子传感器测量人体体温,通过蓝牙技术接收数据,根据温度与设定进行人体温度记录,跟踪,警报与报告的智能系统。传感器本身并不需要蓝牙,只有通讯时才会使用.使用方法:点击右上角的‘+’以添加附近工作的传感器. 所有可识别的体温计将会列出. 选择正确的目标体温计, 可以添加多个设备. 添加后即可接收数据,查看历史与报告.

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • Gallery相册浏览
    该代码是一款简单的画廊式相册浏览功能,代码就一个类,可以轻松的拷贝到自己的项目中,也可以很好的进行完善,修改简单。
    2022-01-29 01:27:39下载
    积分:1
  • 安卓即时通信源码(支持文字 语音聊天)
    应用背景允许在因特网或局域网内的用户进行语音交流.你所需要的只是麦克和声卡.与其它因特网语音通讯软件不同,它对参与会话的人数没有限制(这取决于你的带宽),并且,语音延迟极小,因此能获得较好的沟通效果.英文界面.关键技术该IM软件适合中小型企业用户,支持单聊和群聊,提供文字、表情和图片的富文本实时聊天功能,支持多平台客户端同时登陆,以及各平台之间消息的同步推送。实属国产良心之作,github主页https://github.com/mogutt,官网http://tt.mogu.io/试用帐号javaapk.com 密码sdasda。
    2022-04-22 19:21:07下载
    积分:1
  • 3D绘图安卓程序
    在surfaceView绘图程序中,必须另外建立一个thread来连续调用我们的draw方法。但是3D绘图程序是由系统自动连续运行我们建立的onDrawFrame()方法,因此不需要自己建立thread运行绘图工作。3D绘图程序必须换成使用GLSurfaceView类,并且实现GLSurfaceView.Renderer界面。
    2023-07-14 12:45:03下载
    积分:1
  • ContactsManager
    Java源码下载,Android 联系人管理模块的代码,可读取联系人、修改、删除联系人,如何连接手机通讯录,如何获取头像列表,如何区分是存储在手机或是SIM卡中,对于Android的应用来说,联系人管理比较典型,但比较重要,源代码中的注释很丰富,这也是大家值得参阅本源码的一大原因(Java source code download, code Android contact management module, you can read contacts, modify, delete contacts, how to connect the phone book, How to Get Picture list, how to distinguish is stored in the phone or SIM card for the Android applications, contact management more typical, but more importantly, the comments in the source code is very rich, and this is all worth refer to the source of a major cause of)
    2014-04-16 09:24:01下载
    积分:1
  • android 仿微信浏览相册图片例子源码下载
    [实例简介] 仿微信浏览相册图片, 相册浏览 [实例截图] [核心代码]import java.io.File;import java.io.FilenameFilter;import java.util.ArrayList;import java.util.Arrays;import java.util.HashSet;import java.util.List;import android.app.Activity;import android.app.ProgressDialog;import android.content.ContentResolver;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.provider.MediaStore;import android.util.DisplayMetrics;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup.LayoutParams;import android.view.WindowManager;import android.widget.GridView;import android.widget.PopupWindow.OnDismissListener;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.Toast;import com.zhy.bean.ImageFloder;import com.zhy.imageloader.ListImageDirPopupWindow.OnImageDirSelected;public class MainActivity extends Activity implements OnImageDirSelected{ private ProgressDialog mProgressDialog; /** * 存储文件夹中的图片数量 */ private int mPicsSize; /** * 图片数量最多的文件夹 */ private File mImgDir; /** * 所有的图片 */ private List mImgs; private GridView mGirdView; private MyAdapter mAdapter; /** * 临时的辅助类,用于防止同一个文件夹的多次扫描 */ private HashSet mDirPaths = new HashSet(); /** * 扫描拿到所有的图片文件夹 */ private List mImageFloders = new ArrayList(); private RelativeLayout mBottomLy; private TextView mChooseDir; private TextView mImageCount; int totalCount = 0; private int mScreenHeight; private ListImageDirPopupWindow mListImageDirPopupWindow; private Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { mProgressDialog.dismiss(); // 为View绑定数据 data2View(); // 初始化展示文件夹的popupWindw initListDirPopupWindw(); } }; /** * 为View绑定数据 */ private void data2View() { if (mImgDir == null) { Toast.makeText(getApplicationContext(), "擦,一张图片没扫描到", Toast.LENGTH_SHORT).show(); return; } mImgs = Arrays.asList(mImgDir.list()); /** * 可以看到文件夹的路径和图片的路径分开保存,极大的减少了内存的消耗; */ mAdapter = new MyAdapter(getApplicationContext(), mImgs, R.layout.grid_item, mImgDir.getAbsolutePath()); mGirdView.setAdapter(mAdapter); mImageCount.setText(totalCount "张"); }; /** * 初始化展示文件夹的popupWindw */ private void initListDirPopupWindw() { mListImageDirPopupWindow = new ListImageDirPopupWindow( LayoutParams.MATCH_PARENT, (int) (mScreenHeight * 0.7), mImageFloders, LayoutInflater.from(getApplicationContext()) .inflate(R.layout.list_dir, null)); mListImageDirPopupWindow.setOnDismissListener(new OnDismissListener() { @Override public void onDismiss() { // 设置背景颜色变暗 WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = 1.0f; getWindow().setAttributes(lp); } }); // 设置选择文件夹的回调 mListImageDirPopupWindow.setOnImageDirSelected(this); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DisplayMetrics outMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(outMetrics); mScreenHeight = outMetrics.heightPixels; initView(); getImages(); initEvent(); } /** * 利用ContentProvider扫描手机中的图片,此方法在运行在子线程中 完成图片的扫描,最终获得jpg最多的那个文件夹 */ private void getImages() { if (!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { Toast.makeText(this, "暂无外部存储", Toast.LENGTH_SHORT).show(); return; } // 显示进度条 mProgressDialog = ProgressDialog.show(this, null, "正在加载..."); new Thread(new Runnable() { @Override public void run() { String firstImage = null; Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; ContentResolver mContentResolver = MainActivity.this .getContentResolver(); // 只查询jpeg和png的图片 Cursor mCursor = mContentResolver.query(mImageUri, null, MediaStore.Images.Media.MIME_TYPE "=? or " MediaStore.Images.Media.MIME_TYPE "=?", new String[] { "image/jpeg", "image/png" }, MediaStore.Images.Media.DATE_MODIFIED); Log.e("TAG", mCursor.getCount() ""); while (mCursor.moveToNext()) { // 获取图片的路径 String path = mCursor.getString(mCursor .getColumnIndex(MediaStore.Images.Media.DATA)); Log.e("TAG", path); // 拿到第一张图片的路径 if (firstImage == null) firstImage = path; // 获取该图片的父路径名 File parentFile = new File(path).getParentFile(); if (parentFile == null) continue; String dirPath = parentFile.getAbsolutePath(); ImageFloder imageFloder = null; // 利用一个HashSet防止多次扫描同一个文件夹(不加这个判断,图片多起来还是相当恐怖的~~) if (mDirPaths.contains(dirPath)) { continue; } else { mDirPaths.add(dirPath); // 初始化imageFloder imageFloder = new ImageFloder(); imageFloder.setDir(dirPath); imageFloder.setFirstImagePath(path); } int picSize = parentFile.list(new FilenameFilter() { @Override public boolean accept(File dir, String filename) { if (filename.endsWith(".jpg") || filename.endsWith(".png") || filename.endsWith(".jpeg")) return true; return false; } }).length; totalCount = picSize; imageFloder.setCount(picSize); mImageFloders.add(imageFloder); if (picSize > mPicsSize) { mPicsSize = picSize; mImgDir = parentFile; } } mCursor.close(); // 扫描完成,辅助的HashSet也就可以释放内存了 mDirPaths = null; // 通知Handler扫描图片完成 mHandler.sendEmptyMessage(0x110); } }).start(); } /** * 初始化View */ private void initView() { mGirdView = (GridView) findViewById(R.id.id_gridView); mChooseDir = (TextView) findViewById(R.id.id_choose_dir); mImageCount = (TextView) findViewById(R.id.id_total_count); mBottomLy = (RelativeLayout) findViewById(R.id.id_bottom_ly); } private void initEvent() { /** * 为底部的布局设置点击事件,弹出popupWindow */ mBottomLy.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mListImageDirPopupWindow .setAnimationStyle(R.style.anim_popup_dir); mListImageDirPopupWindow.showAsDropDown(mBottomLy, 0, 0); // 设置背景颜色变暗 WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = .3f; getWindow().setAttributes(lp); } }); } @Override public void selected(ImageFloder floder) { mImgDir = new File(floder.getDir()); mImgs = Arrays.asList(mImgDir.list(new FilenameFilter() { @Override public boolean accept(File dir, String filename) { if (filename.endsWith(".jpg") || filename.endsWith(".png") || filename.endsWith(".jpeg")) return true; return false; } })); /** * 可以看到文件夹的路径和图片的路径分开保存,极大的减少了内存的消耗; */ mAdapter = new MyAdapter(getApplicationContext(), mImgs, R.layout.grid_item, mImgDir.getAbsolutePath()); mGirdView.setAdapter(mAdapter); // mAdapter.notifyDataSetChanged(); mImageCount.setText(floder.getCount() "张"); mChooseDir.setText(floder.getName()); mListImageDirPopupWindow.dismiss(); }}
    2015-04-08下载
    积分:1
  • 简易好用的ViewPager指示器
    应用背景有自定义ViewPager指示器,以及对指示器动画有连贯过渡需求的用户关键技术自定义ViewPager指示器,自定义属性,使用paint和canvas画出原点,使用动画定制达到阻尼效果
    2022-01-30 17:16:43下载
    积分:1
  • Android的快速文件检索
    通过递归和Linux底层命令方式实现快速文件检索.可以使查询速度达到秒级.快速的算法调用linux底层..可以使查询速度达到秒级.快速的算法调用linux底层.
    2022-02-13 20:44:33下载
    积分:1
  • ADO操作数据库
    ADO操作数据库
    2020-05-04下载
    积分:1
  • cameraengine.java代码我在网上找到的
    应用背景Android应用OCR为languaje照片和图像识别Java类,使用tessreact苔丝两库。代码最初是由F. Aro创造,适应和实现的我没有任何工作意向学校高。关键技术苔丝tessreact两库开发的谷歌,谷歌GitHub的网页下载,Android Studio Android开发者页面和Android SDK下载,使用Java languaje,它是一个Java类代码使用相机的文字识别中的应用。 ;
    2022-01-22 17:31:42下载
    积分:1
  • 爱奇艺见面ui源码
    爱奇艺见面ui源码啊啊啊啊啊啊啊啊 啊啊 啊啊啊啊啊啊 啊啊啊啊啊 啊啊啊啊啊啊啊啊啊啊啊 啊啊啊啊啊啊啊啊啊啊 啊啊啊啊啊啊啊啊 啊啊啊啊啊啊啊啊 啊啊啊 a
    2022-03-20 14:14:24下载
    积分:1
  • 696518资源总数
  • 106164会员总数
  • 18今日下载