今天在调试代码的时候,需要使用定时任务,我就用宝塔的定时任务运行了。...但是定时任务启动后,发现代码逻辑有点问题,并且任务一直在后台运行,所以我需要kill掉任务进程,接下来我就来说一下解决方法登录ssh(宝塔终端或其它任何ssh工具),执行以下命令# 列出所有正在执行的任务
Q:由于工作太多太杂,导致经常忘记要做的事情,希望利用Excel工作表来定时提醒当前要进行的工作。也就是说,在到达某个时刻后,工作表中的文本框会自动显示该时刻应该做的工作。...如下面的图1和图2所示,图1为工作安排表,列A中为安排的工作,列B中为相应工作开始的时间;图2用于显示当前应进行的工作。 ? 图1:工作安排表。...列A中是工作安排,列B中是工作开始的时间,可根据需要修改和添加。 ? 图2:显示当前工作的界面。单击“显示”按钮后程序开始工作,当达到某时刻后,文本框中会显示当前应进行的工作。...lLastRow =Sheet3.Range("B65536").End(xlUp).Row ‘赋值时间所在列区域 Set rng =Sheet3.Range("B1:B" &...lLastRow) ‘当前时间 dTime = Time ‘查找当前时间 Set rngFind =rng.Find(dTime) Sheet5.TextBox1
海报如何脱颖而出 现如今各种线上线下宣传推广随处可见,海报宣传单满天飞,每个人都在用尽最大努力做最好的推广宣传。那么就海报设计而言,如何在最短的时间内引起消费者的注意,引起读者进一步阅读的兴趣?...1.(2)组织 组织即平面设计中的亲密性,从用户体验的角度出发,当元素杂乱无章摆放的时候,我们很难一眼捕捉到想要的元素,但当元素分类在同一组内,我们便能迅速的找到想要获取的信息。...在设计线下海报的时候,我们应前为读者归纳好信息,减少读者阅读障碍。 ?...在不同的情景下,利用颜色进行情感表达也不失为一个有效的方式。 ?...5.(2)问题可能在显示器 液晶屏偏色现象普遍,导致印刷成品色差较大也是有可能的。 5.(3)问题可能在转换格式过程 文件格式的转换,会引起色差,如:ai转cdr后是会偏差的。
今天我将要模拟实现一个“由于APP自身版本过低、导致无法在当前的系统版本上运行”的功能效果。...实现思路如下: 要获得APP的目标运行版本,也要知道系统的编译版本 通过版本比较,在进入该APP时,给用户做出“不支持运行”的提示 用户确认提示后,直接退出该APP 关键点是 targetSdkVersion...中需要定义 uses-sdk 这个标签的 targetSdkVersion 属性: android:targetSdkVersion="25" /> 注意: 如果在 app 目录下的...我们注意到程序中使用的是 getApplicationInfo().targetSdkVersion,说明这个变量是 ApplicationInfo.java 的成员变量,这个值是在安装APK的过程中、...由系统服务 PackageManagerService 解析赋值的,解析的源码位于 frameworks\base\core\java\android\content\pm\PackageParser.java
介绍 本篇主要基于 Android 官方的低功耗蓝牙连接服务。 讲解如何通过 UUID 连接蓝牙设备。如果你针对 GATT 服务不太了解。那么这篇应该能够稍微帮助到你。...概念 如果是老用户了,那么就应该知道曾经蓝牙设备是一个高耗电的部件。根本不可能长时间开启。而在蓝牙4.0版本之后,蓝牙的通讯,耗电,抗干扰都得到了显著提升。同时蓝牙成本也得到了降低。...PS:这个方法需要android.Manifest.permission.BLUETOOTH_CONNECT 权限才能使用。 官方是建议我们通过Intent让系统设置进行开启蓝牙的。...这个方法触发之后是由系统进行蓝牙扫描。就和我们在手机的设置界面中点击蓝牙扫描一样。 上面的这个方法没有回调,因为所有的蓝牙设备的发现都将通过广播事件进行传递。 需要通过我上面的广播监听介绍的内容。...3.8 写数据到蓝牙设备中 我们如果想将内容推送到蓝牙设备中,在发现服务的时候onServicesDiscovered 遍历特性中,确保是用于写消息的特性对象后。
好了,属性配置就介绍到这儿了,接下来要真正开始蓝牙模块的学习了,首先明确模块的布局,蓝牙模块的功能,蓝牙实现的有:开启蓝牙,蓝牙重命名,蓝牙检测性及检测时间设置,扫描附近可用蓝牙设备,加载已经配对的蓝牙设备...开启扫描,正在扫描,扫描结束,并更新进度条 THREE,蓝牙功能实现流程 功能模块这块儿主要分析一下实现的流程,代码为辅,若在看源码时代码有什么问题,可在博文下咨询 1>,蓝牙开关switch相关, 蓝牙开关涉及到本地蓝牙状态的更改以及用户点击...,系统蓝牙适配发送广播通知蓝牙名称已经修改,在接受到蓝牙名称修改后的广播后更新preference的title。...,说一下实现逻辑不贴代码了,有需要的再问吧 首先明确可检测性事件,然后在开启限时的可检测性后再更新summary的方法中开启一个线程,该线程中再次调用该更新summary的方法,在更新summary中的方法中会对时间进行判断...,如果时间结束了,就退出该方法。
蓝牙协议开关 蓝牙协议开关这篇文章中讲述了作为系统开发人员如何禁止掉蓝牙某个协议(包括上层和底层) 2>,蓝牙协议实现 对于蓝牙协议我只能是分析常见且我的测试机可以实现的,计划要分析的协议如下 opp...然后在分析结束后再看看你原先的疑问有没有解决,以及你有什么新的疑问。...所以,明确分析目的: 会加载什么样的设备 设备是如何加载的 设备的点击事件的处理 在继续接下来的阅读时我假设你是对settings源码已经有了一定的了解,如果没有建议你先看看我对源码的settings或者蓝牙的一些基础界面的分析...在开启该activity时,如果满足扫描条件的话,也会进行蓝牙扫描。 在蓝牙状态发生改变并且当前蓝牙状态为开启时也会进行扫描 设备的点击事件?...在点击时,当前界面不会结束,会先去调用父类的方法进行配对,配对成功后发送广播,触发该类中的onDeviceBondStateChanged方法,在该方法中检测到所配对的设备就是所选择的设备后重复第一种情况的行为
观看者戴上特制的偏光眼镜,让两眼分别看到不同的放映机光线,在大脑中就得到了强烈的立体图像。...不过现在还有几大问题:手机电量的限制,手机散热措施不完善,长时间视频观看有时导致大脑晕眩,近距离是否会对眼睛造成损害吗,大型3D手机运行内存问题(这个手机升级中将不再是问题)等。这是我的个人看法。...传输范围在10M左右实际传输速度在100kb+,,Android 2.0开始支持蓝牙,API6 调试时候需要真机,模拟器不行。...Android蓝牙开发: 权限 android.permission.BLUETOOTH 允许程序连接到已配对的蓝牙设备 android.permission.BLUETOOTH_ADMIN 允许程序发现和配对蓝牙设备...扫描结束 在扫描到新设备的监听中,拿到这个设备 4.3D的图形效果制作: 通过Unity软件制作3D的图形效果(这里可以实现游戏的图案效果),与Android包交互中间会用到C#语言。
(mode, duration); //设置alarm,当timeout结束时就关闭蓝牙的可检测性 BluetoothDiscoverableTimeoutReceiver.setDiscoverableAlarm...adapter.cancelDiscovery();//关闭蓝牙扫描功能 在扫描到设备时系统会发送BluetoothDevice.ACTION_FOUND的广播,通过监听该广播可以获取到设备信息 获取到设备后调用如下方式进行连接...,这里的uuid可以在网页的uuid生成器在线生成,remotedevice和本机蓝牙设备的uuid必须相同 TWO,BLE低功耗蓝牙 获取蓝牙适配器的步骤同上,扫描ble设备的方法如下: //开启蓝牙扫描...mBluetoothAdapter.startLeScan(mLeScanCallback); //结束蓝牙扫描 mBluetoothAdapter.stopLeScan(mLeScanCallback...Android蓝牙BLE低功耗相关简单总结 鉴于多人私信我要蓝牙demo,索性直接上传资源,我整理了一篇低功耗相关的,连接设备并读取数据,附上demo的下载地址,供大家参考 http://download.csdn.net
这些问题的答案就决定了你在开发Android低功耗蓝牙应用的进度和结果。 ① 之前有没有接触Android蓝牙开发? ...蓝牙打开之后要做定位权限的判断,Android12及以上则需要做BLUETOOTH_SCAN权限的请求,权限通过之后才能进行扫描,这里要注意会出现一些设备在Android12上获取BLUETOOTH_SCAN...权限后也扫描不到,此时你需要再去请求定位权限,并且扫描权限这样设置一下: <uses-permission android:name="android.permission.BLUETOOTH_SCAN...,它可以让你知道你的设备支持那些服务,拥有那些特性,特性的描述又有那些。...这个写入时需要确定写入的服务是哪一个,写入的数据是有响应还是无响应,默认是有响应的,这里的有响应和无响应关系到写入数据的方式,例如你需要连续的传一段数据给蓝牙设备,开始指令,结束指令和中间数据,类似于开始和结束可以采用有响应的方式
Android从2.3版本起就开始支持OpenSL ES标准了,并且通过NDK提供相应的API开发接口。...支持pcm数据的采集和播放 支持播放的音频数据来源广泛,res、assets、sdcard、在线网络音频以及代码中定义的音频二进制数据 和Android提供的AudioRecord和AudioTrack...如果希望减少拷贝,开发更加高效的Android音频应用,则建议使用Android NDK提供的OpenSL ES API接口,它支持在native层直接处理音频数据。...log OpenSLES ) 在java层只需获取到要播放的pcm文件的位置,然后传入native层即可,代码如下: val pcmPath=getExternalFilesDir...absolutePath+File.separator+"input.pcm" playPcmBySL(pcmPath) 需要注意的是,pcm文件可以通过使用ffmpeg解码mp3文件得到,但是在解码的时候需要注意的是
蓝牙SIG规定了许多低功耗设备的配置文件。配置文件是设备如何在特定的应用程序中工作的规格说明。注意一个设备可以实现多个配置文件。例如,一个设备可能包括心率监测仪和电量检测。...中央设备扫描,寻找广播;外围设备发出广播。 *GATT 服务端 VS GATT 客户端。决定了两个设备在建立连接后如何互相交流。...一般情况下Android4.3以后的手机具有蓝牙模块的话都会支持BLE,具体可以再代码中判断。 为了在app中使用蓝牙功能,必须声明蓝牙权限BLUETOOTH。...利用这个权限去执行蓝牙通信,例如请求连接、接受连接、和传输数据。 如果想让你的app启动设备发现或操纵蓝牙设置,必须声明BLUETOOTH_ADMIN权限。...你必须实现它的回调函数,那就是返回的扫描结果。因为扫描非常消耗电量,你应当遵守以下准则: *只要找到所需的设备,停止扫描。 *不要在循环里扫描,并且对扫描设置时间限制。
,再加上我也想写一些关于Kotlin的内容,对于低功耗蓝牙的Java版的,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解的环节,更多的注重业务逻辑和UI以及Kotlin...扫描之前要判断Android版本,6.0及以上需要动态请求权限,请求之后要判断蓝牙是否打开,蓝牙打开权限也有了就可以点击扫描蓝牙开始扫描了,扫描时显示加载条表示正在扫描,扫描到设备后添加到列表中,页面上渲染出来...方法中调用 当权限同意之后就打开蓝牙,如果都打开了就可以开始进行扫描蓝牙的操作了,在扫描之后先要确定蓝牙设备需要什么信息。...因此等先把数据展示出来再去进行这个扫描的开始和结束的操作方法的编写。...然后在onCreate中调用这个initView方法。 然后就是扫描后的数据处理,之前里面可是啥也没有的。
是受众群体确实比较少,当然了也是有大的方向在往这边推动的,但是小公司依然不会去用Kotlin,如果你看不惯我这个说法也不要告诉我。...运行效果图 [在这里插入图片描述] 扫描蓝牙设备 [在这里插入图片描述] 如果你对上面的效果图感觉满意,那么可以往下面看了,不满意就不浪费你查看其它文章的时间了。...[在这里插入图片描述] 没错,这就是Kotlin语言的Android项目,和Java还是有区别的,建议了解了Kotlin的语法再看文章会比较好,当然你也可以对照我写的Android 蓝牙开发(扫描设备、...扫描蓝牙 在布局中底部我放了一个TextView,点击之后扫描蓝牙, <!..." android:text="扫描蓝牙" /> 注意看这一句话 android:onClick="scanBluetooth" 通过在布局中点击触发MainActivity中的方法,
相较经典蓝牙,低功耗蓝牙旨在保持同等通信范围的同时显著降低功耗和成本。 笔者前段时间做了一个功能,需要对接一个蓝牙设备,该蓝牙设备使用的就是BLE蓝牙。这里给大家分享一下我的实现。...为我们准备好的蓝牙对接类,在设备有蓝牙驱动和硬件的情况下,就会有值。...我们首先利用它去检测设备是否有蓝牙驱动,设备蓝牙是否打开等信息,并优化用户体验。满足以上条件后,我们可以开始扫描附近的蓝牙设备。...} } } callback中会在蓝牙扫描开启后,持续的返回查询到的蓝牙设备信息,由于笔者只需要连接特定名字的指定蓝牙设备,所以用名字做了判断,成功查询到时...到此,我们就获取到了附近所有的使用BLE蓝牙的设备的设备信息。至于如何交互?如何筛选BLE蓝牙设备的指定权限服务?笔者会在下篇一一道来,并且会上传一个笔者做的蓝牙测试工具。
,不过就怕写了没有人看,因为在国内Kotlin是受众群体确实比较少,当然了也是有大的方向在往这边推动的,但是小公司依然不会去用Kotlin,如果你看不惯我这个说法也不要告诉我。...我只是把这个博客当成是笔记而已,如果能在写作的时候帮助到别人也是乐意的,不能就自勉吧。 运行效果图 ? 扫描蓝牙设备 ?...没错,这就是Kotlin语言的Android项目,和Java还是有区别的,建议了解了Kotlin的语法再看文章会比较好,当然你也可以对照我写的Android 蓝牙开发(扫描设备、绑定、解绑)Java版来看...扫描蓝牙 在布局中底部我放了一个TextView,点击之后扫描蓝牙, <!..." android:text="扫描蓝牙" /> 注意看这一句话 android:onClick="scanBluetooth" 通过在布局中点击触发MainActivity中的方法,在
由于蓝牙功能设计的内容比较多,篇幅有限,本文只集成一个最基本的蓝牙扫描功能,意在抛砖引玉。后续会陆续更新其他蓝牙通讯功能的文章。...如果适配 Android 9(API 级别 28)或更低版本,可以声明 ACCESS_COARSE_LOCATION 权限而非 ACCESS_FINE_LOCATION 权限 如果想让应用启动设备发现或操纵蓝牙设置...--让应用启动设备发现或操纵蓝牙设置--> android:name="android.permission.BLUETOOTH_ADMIN" /> 扫描进程在设备的前台运行,扫描到设备后触发leScanCallback 回调,然后通过私有的LeDeviceListAdapter字段保存扫描到的设备列表...同时在vs的输出中可以看到打印的日志 本文到此结束,下一篇我们实现具体的BLE的通讯。
这么长时间没更新文章,其实原因就三点: 原因一是工作上事确实多,近一个月跑了17个城市,基本不是在客户现场就是去下一个地方的飞机或高铁上。...扫描时有几个重点: 我们在系统中设置蓝牙中是无法扫描到广播的,必须要在App中实现。...所以我们自己在蓝牙通讯时,可以自行定义上面xxxx部分,用于识别自己的蓝牙方式,并且在扫描蓝牙时可能通过定义好的UUID来过滤掉没有必要的蓝牙广播。...后面我的Demo中主要也是连接后通过Characteristic进行数据的通信, Android BLE中的几个关键类 # 类名 说明 1 BluetoothAdapter 映射了设备的蓝牙模块,通过BluetoothManager...现在Demo还在做中,主要是想做Demo也加入点新东西的练手,所以Demo中也直接用MVI来写的,BLE里面相关的通讯,我也尽量都整全到一个公共类中,这样在开发阶段也可以直接复制过来用,结果就是做的时间更长了
Android蓝牙开发系列目录: https://blog.csdn.net/huangliniqng/article/details/82185635 一、判断是否系统是否支持蓝牙 在使用蓝牙之前,...", Toast.LENGTH_SHORT).show(); } 二、判断蓝牙是否打开 开始使用蓝牙之前,首先要判断蓝牙是否开启,如果没有开启则开启,蓝牙开启有两种方式一种是直接默认开启,另一种是弹出框让用户选择开启...BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enabler, 1); 打开方式二: bluetoothadapter.enable() 如果打开蓝牙的同时想设置让自己手机蓝牙多少秒可见可以使用...);//搜索完成的广播 filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);//开始扫描的广播 filter.addAction..." />、 这些权限是都可以用到的,Android5.0以上要添加定位权限才可以,所以最后两项是定位权限,在扫描的时候,Android6.0以上的手机记得动态申请权限才可以扫描到设备,动态权限文章推荐AndroidAcp
领取专属 10元无门槛券
手把手带您无忧上云