
UUID含义是通用唯一识别码,这是一个软件构建的标准,也是被开源软件基金会的组织应用在分布式计算环境领域的一部分。
作用
UUID的目的是让分布式系统中的所有元素,都能有唯一的辨别资讯,而不需要通过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的UUID。在这样的情况下,就不需要考虑数据库建立时的名称重复问题。目前最广泛应用的UUID,即是微软的Microsoft's
Globally Unique Identifiers,而其他重要的应用,则有Linux
ext2/ext3档案系统、LUKS加密分割区、GNOME、KDE、Mac OS X等。
组成
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。
UUID由以下几部分的组合
①当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
②时钟序列。
③全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。
UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式为:xxxxxxxx-xxxx-
xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是 0-9 或 a-f
范围内的一个十六进制的数字。而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx
(8-4-4-4-12),可以从cflib下载CreateGUID() UDF进行转换。
应用
使用UUID的好处在分布式的软件系统中就能体现出来,它能保证每个节点所生成的标识都不会重复,并且随着Web服务等整合技术的发展,UUID的优势将更加明显。根据使用的特定机制,UUID不仅需要保证是彼此不相同的,或者最少也是与公元3400年之前其他任何生成的通用唯一标识符有非常大的区别。
通用唯一标识符还可以用来指向大多数的可能的物体。微软和其他一些软件公司都倾向使用全球唯一标识符,这也是通用唯一标识符的一种类型,可用来指向组建对象模块对象和其他的软件组件。第一个通用唯一标识符是在网络计算机系统中创建,并且随后成为开放软件基金会的分布式计算环境的组件。
1利用三方库的支持 三方demo点这里
2将demo中SSKeychainh SSKeychainm文件拖入工程,桥接配置自己百度
3在工程中建一个swift文件供全局调用方法就是在创建的Global文件中直接复制过去
4在TARGETS中Capabilities中将Keychain Sharing打开就可以le
有的刚创建的swift项目找不到Keychain Sharing
这个需要自己添加,如下图:
感谢原作者,借鉴地址: >
首先,要 *** 作蓝牙,先要在AndroidManifestxml里加入权限
<uses-permissionandroid:name="androidpermissionBLUETOOTH_ADMIN" />
<uses-permissionandroid:name="androidpermissionBLUETOOTH" />
然后,看下api,Android所有关于蓝牙开发的类都在androidbluetooth包下。 而需要用到了就只有几个而已:
1BluetoothAdapter 顾名思义,蓝牙适配器,直到我们建立bluetoothSocket连接之前,都要不断 *** 作它BluetoothAdapter里的方法很多,常用的有以下几个:cancelDiscovery() 根据字面意思,是取消发现,也就是说正在搜索设备的时候调用这个方法将不再继续搜索disable()关闭蓝牙enable()打开蓝牙,这个方法打开蓝牙不会d出提示,更多的时候需要问下用户是否打开,一下这两行代码同样是打开蓝牙,不过会提示用户:Intemtenabler=new Intent(BluetoothAdapterACTION_REQUEST_ENABLE);
startActivityForResult(enabler,reCode);//同startActivity(enabler);
getAddress()获取本地蓝牙地址getDefaultAdapter()获取默认BluetoothAdapter,实际上,也只有这一种方法获取BluetoothAdaptergetName()获取本地蓝牙名称getRemoteDevice(String address)根据蓝牙地址获取远程蓝牙设备getState()获取本地蓝牙适配器当前状态(感觉可能调试的时候更需要)isDiscovering()判断当前是否正在查找设备,是返回trueisEnabled()判断蓝牙是否打开,已打开返回true,否则,返回falselistenUsingRfcommWithServiceRecord(String name,UUID uuid)根据名称,UUID创建并返回BluetoothServerSocket,这是创建BluetoothSocket服务器端的第一步startDiscovery()开始搜索,这是搜索的第一步。 2BluetoothDevice看名字就知道,这个类描述了一个蓝牙设备createRfcommSocketToServiceRecord(UUIDuuid)根据UUID创建并返回一个BluetoothSocket这个方法也是我们获取BluetoothDevice的目的——创建BluetoothSocket
这个类其他的方法,如getAddress(),getName(),同BluetoothAdapter;
3BluetoothServerSocket如果去除了Bluetooth相信大家一定再熟悉不过了,既然是Socket,方法就应该都差不多,这个类一种只有三个方法
两个重载的accept(),accept(inttimeout)两者的区别在于后面的方法指定了过时时间,需要注意的是,执行这两个方法的时候,直到接收到了客户端的请求(或是过期之后),都会阻塞线程,应该放在新线程里运行。
还有一点需要注意的是,这两个方法都返回一个BluetoothSocket,最后的连接也是服务器端与客户端的两个BluetoothSocket的连接。
4BluetoothSocket,跟BluetoothServerSocket相对,是客户端一共5个方法,不出意外,都会用到close(),关闭connect()连接getInptuStream()获取输入流getOutputStream()获取输出流getRemoteDevice()获取远程设备,这里指的是获取bluetoothSocket指定连接的那个远程蓝牙设备 。
FreeSWITCH中的lua *** 作小结
lua中设置当前通道变量:
方法一:
session:setVariable("fullName", "xxxxx");--需判断session是否为空
方法二:
local uuid =getUUID(callerid);
local res=api:executeString("uuid_setvar " uuid " fullName ""xxxxxxx")
该处设置的变量可以是通道中本没有的变量,设置完了后,在其他地方就可以引用该变量。
lua中设置全局通道变量(在varsxml中设置)
local ucall_ip = api:executeString("global_setvar qt_ucall_ip_port 192168032:9090");
获取当前的通道变量
local callee_num=session:getVariable("qt_ucall_callee");
获取全局通道变量
local ucall_ip = api:executeString("global_getvar qt_ucall_ip_port");
获取当前会话uuid
session:get_uuid()
获取当前路径
--USwitch的当前安装目录
syspath = tostring(api:execute("global_getvar", "base_dir"));
使用uuid_transfer将当前对话的两个号码同时转入会议中
local trf1="uuid_transfer " guestuuid " -both " conferenceNum;
OutputConsoleLog("info" , scriptname ": try to get guestNum to conference,command is{"trf1"}");
api:executeString(trf1);
外呼方法总结:
originate user/11103139316095XX
originate sofia/external/139316095XX@192168234 &playback(calloutmusic/welcometoyoump3)
originate loopback/139316095XX&playback(calloutmusic/20110126164156mp3)
在lua脚本中放一段录音
session:streamFile("notondutywav");
判断会话是否已建立
session:ready()==true
挂断当前会话
session:hangup();
将当前会话休眠一段时间
session:sleep(5000);
发起>
以上就是关于UUID的介绍全部的内容,包括:UUID的介绍、Swift获取UUID方法、蓝牙程序中的UUID是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)