Android系统编程入门系列之硬件交互——通信硬件电信SIM卡

现在的SIM卡通常具备基站定位、语音通话、短信消息、网络流量这四大功能,而在移动端是无法对SIM卡使用基站定位功能的,所以这里只介绍移动端如何使用SIM卡实现语音通话、短信消息、数据流量三个功能。 ##语音通话 Android系统中提供了通话服务,同时自带系统级应用可以通过该通话服务使用SIM卡的通 ...阅读全文

多线程、Handler机制、ThreadLocal

Thread 线程状态:新建(new),就绪(start),运行(run),阻塞,死亡 start 方法内部调用了 run 方法,start 会开启线程,run 只是内部方法; sleep 会占用锁,休眠时间到在重新运行; stop 停止线程比较暴力,对锁的对象进行强制解锁,线程资源因此得不到正常释 ...阅读全文

iOS实现组件录屏视频不可见,用户肉眼可见(类似系统键盘效果)

系统键盘在密码框输入时,如果用户开启录屏,键盘在录屏得到的视频里会不可见,但是用户在录屏时却能看到。 为了实现这个效果,利用UItextfield在录屏下视频不可见的特性,将实现这一效果的私有UIview,也就是_UITextLayoutCanvasView提取出来,作为背景,其他组件在这个背景上显 ...阅读全文

Android系统编程入门系列之硬件交互——无线通信WLAN

Android系统的移动设备大多支持无线WLAN技术。利用该技术,不仅能实现互联网通信,还能实现无线定位,热点共享等远程通信功能。针对使用WLAN的不同功能,可能需要分别申请不同的权限声明,同时调用不同的系统框架API,下文将按照不同的使用功能分别介绍。 ##扫描无线设备 该功能通常只允许在系统自带 ...阅读全文

Android 连接蓝牙扫码器 无输入框

Android 的APP 需要集成一个蓝牙扫码器, 特别的是,需要扫码的地方是没有输入框的(EditText),不能通过直觉上理解的通过对EditText输入事件进行监听处理,取得扫码结果。并且设备也没有提供SDK。 细想了一下, 蓝牙扫码器本质应该是个HID设备,相当于蓝牙键盘。而后豁然开朗。 每 ...阅读全文

Android蓝牙扫码连接时,防止Activity重启

集成了一个蓝牙的扫码枪,发现每次连接时,应用的当前Activity会销毁再次创建。调试了下, 没有监听到任何的事件,非常困惑。搜了一阵了解到是Android的一个机制。 某些设备配置可能会在运行时发生变化(例如屏幕方向、键盘可用性,以及当用户启用多窗口模式时)。发生这种变化时,Android 会重启 ...阅读全文

【Kotlin】初识Kotlin(二)

【Kotlin】初识Kotlin(二) 1、Kotlin的流程控制 流程控制是一门语言中最重要的部分之一,从最经典的if...else...,到之后的switch,再到循环控制的for循环和while循环,都是在开发中离不开的。 之前在第一篇博文中提到了Kotlin中的for循环和foreach循环 ...阅读全文

意图(Intent)

Android意图是一个要执行的操作的抽象描述。它可以通过 startActivity 来启动一个活动,broadcastIntent 来发送广播到任何对它感兴趣的广播接受器组件,startService(Intent) 或者bindService(Intent, ServiceConnection ...阅读全文

launchMode(启动模式)

standard(标准模式) 默认启动模式,每次将创建一个新的实例。 singleTop(栈顶复用) 如果该活动处于栈顶部,则不会新建实例,否则新建实例; 复用时会触发 onNewIntent 方法。 singleTask(栈内复用) 栈内唯一,只要栈中存在该实例,将被复用;并且位于该复用活动顶部的 ...阅读全文

Android系统编程入门系列之硬件交互——通信硬件USB

在硬件交互的首篇对设备硬件的分类中,互联通信系列硬件主要用来与其他设备进行数据交互。从本文开始,将重点介绍该系列相关硬件。 ##互联通信系列硬件 根据硬件的可通信距离,由近及远分为USB、NFC、蓝牙、WLAN,SIM卡槽,这些硬件之间的功能原理及关系可以查找其他资料详细学习。总之,他们为当前设备与 ...阅读全文