我正在尝试实施一个Android应用程序来接收来自医疗设备的数据,但我无法完成发现过程并让手机与设备配对或相互连接.
描述医疗设备: 设备正在使用服务发现协议(SDP)和串行端口配置文件(SPP).它启动一个查询程序,用匹配的COD过滤器和服务名称发现(最多10个)周围的接入点.然后通过检查PIN顺序建立与接入点的连接(使用Page Procedure).匹配PIN后,将上载数据.上传数据后,设备等待确认.decice是主人并启动通信.
我无法控制医疗设备.我所能做的就是启动它并等待上述程序(测量后).
Android应用程序:
我从开发人员页面上的蓝牙聊天示例开始.到目前为止,我已将UUID替换00001101-0000-1000-8000-00805f9b34fb为使用SPP并将服务名称设置为适当的名称.通过从计算机检查服务,我可以确认这似乎是正确的.由于医疗设备是接收和启动通信的设备,我的服务正在使用a BluetoothServerSocket和accept()方法开始收听它.
在开发者页面中,我读过UUID必须在尝试通信的应用程序之间匹配.由于我无法为医疗设备设置任何UUID,我想知道这是否会成为一个问题,或者医疗设备是否足够使用SP配置文件?
如果服务名称和UUID正确并且医疗设备实际上会尝试连接到正在侦听连接的蓝牙服务,那么Android系统是否会提示我手动输入PIN以便能够配对设备(因为医疗设备)有预先设定的PIN码?
我还没有在Android SDK API中找到任何可以为我的蓝牙服务设置PIN的内容(如果这是失败的话),这可能吗?
我已经读过,通常现在系统会生成PIN,并且只需要用户确认.我想不在我的系统中,因为设备有点老了.
如果你想分享一些与我上面描述的相关的知识,提示和猜测,我会很高兴!
先谢谢Fredrik
编辑:
现在我已将设备与bluegiga盒配对,并且它们正确通信.现在我正在寻找满足血压设备连接到手机的标准.我可以从Linux计算机(sdptool search SP在终端中)检查bluegiga提供的蓝牙服务,并将其与我在Android上提供的蓝牙服务进行比较.这些值是我得到的:
〜$ sdptool搜索SP
查询 ...
在8C上搜索SP:71:F8:E5:XX:XX...
服务名称:1808130054
Service RecHandle:0x10003
服务类ID列表:
UUID 128:00001101-0000-1000-8000-00805f9b34fb
协议描述符列表:
"L2CAP"(0x0100)
"RFCOMM"(0x0003)
频道:13
"
在00:07:80:88:XX:XX上搜索SP...
服务名称:1808130054
服务说明:1808130054
Service RecHandle:0x10005
服务类ID列表:
"串口"(0x1101)
协议描述符列表:
"L2CAP"(0x0100)
"RFCOMM"(0x0003)
频道:12
语言库Attr列表:
code_ISO639:0x656e
enconding:0x6a
base_offset:0x100
找到的第一个设备是手机(mac = 8C:71 ... Google Nexus S),第二个设备(mac = 00:07 ...)是bluegiga.我注意到Android设备上没有服务描述.我认为最重要的区别在于服务类ID列表.Android上的UUID 128,但在bluegiga上有一个完全不同的格式描述. …
我创建了WCF服务并使用独立应用程序测试WCF客户端.我能够使用Internet Explorer查看此服务,也可以在Visual Studio服务引用中查看.这是错误消息.
"The content type text/html; charset=UTF-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8)."
你能不能指出可能出错的地方?
谢谢.
我的应用程序具有"photobooth"功能,允许用户使用相机拍照,同时在相机视图顶部显示叠加图像.拍照后,我需要保存用户在将图片带到文件系统时看到的内容.
我在开发解决方案时遇到了一个大问题:捕获具有兼容尺寸的图像,我可以在其中附加叠加图像,从而产生用户在拍照时看到的内容.
似乎我无法从具有定义尺寸的相机捕获图像(我必须从它们的列表中基本上选择).有些手机只能产生一定的尺寸.
由于我无法选择捕获图像的大小,似乎我需要包含许多不同大小的叠加图像,并将最佳匹配附加到捕获的图像.我不能只是拍摄相机图像顶部的任何旧叠加层,使其看起来正确.
问题:
编辑:这是我的解决方案(简要).请注意这不是一个完美的,也许不是最有效的方法,但它确实有效.有些事情可能是不必要/多余的,但无论如何
笔记:
addContentView(overlayImageView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));...
final Camera.PictureCallback jpegCallback = new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
BitmapFactory.Options options = new BitmapFactory.Options();
Bitmap mutableBitmap = null;
try {
//for a PORTRAIT overlay and taking the image holding the phone in PORTRAIT mode
mutableBitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options).copy(Bitmap.Config.RGB_565, true);
Matrix matrix = new Matrix();
int width = mutableBitmap.getWidth();
int height = mutableBitmap.getHeight();
int …Run Code Online (Sandbox Code Playgroud) 我尝试生成RSA密钥对并将其存储在HSM密钥库中.我现在的代码如下所示:
String configName = "C:\\eTokenConfig.cfg";
Provider p = new sun.security.pkcs11.SunPKCS11(configName);
Security.addProvider(p);
// Read the keystore form the smart card
char[] pin = { 'p', '4', 's', 's', 'w', '0', 'r', 'd' };
KeyStore keyStore = KeyStore.getInstance("PKCS11",p);
keyStore.load(null, pin);
//generate keys
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA",p);
kpg.initialize(512);
KeyPair pair = kpg.generateKeyPair();
PrivateKey privateKey = pair.getPrivate();
PublicKey publicKey = pair.getPublic();
// Save Keys How ???
Run Code Online (Sandbox Code Playgroud)
我试图使用keyStore.setEntry方法,但问题是它需要一个证书链,我不知道如何获得此证书?
我有一个用 Fortran 编写的非常大的代码,用于建立并迭代求解非线性偏微分方程组。我需要所有变量都是双精度的。在我为代码编写的附加模块中,我将所有变量声明为双精度类型,但我的模块仍然使用旧源代码中声明为 real 类型的变量。所以我的问题是,当单精度变量乘以 Fortran 中的双精度变量时会发生什么?如果用于存储值的变量声明为双精度,结果是否为双精度?如果双精度值乘以末尾没有“D0”的常数会怎样?我可以在 Intel 11.1 中设置一个编译器选项来使所有实数/双精度/双精度常数吗?
你能告诉我在哪里可以看到GTK +项目的例子来源(非gtkmm).希望将Glade用于设计UI.我想看看如何组织程序和获得经验.
我正在使用LDAP Active Directory并尝试列出所有用户.我有这个完美的过滤器:
(&(objectclass=user)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
Run Code Online (Sandbox Code Playgroud)
不幸的是,我们还有AD中的计算机单元和其他设备与对象类"用户",所以使用以前的过滤器,我得到了所有用户,计算机,设备,房间等.
这些计算机和设备还有一个对象类"计算机",因此我需要使用objectclass!="computer"扩展过滤器,以便仅列出真实用户.到目前为止,我尝试过这些过滤器,它们都没有工作(没有数据返回!):
(&(objectclass=user)(!objectclass=computer)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
(&(objectclass=user)(!(objectclass=computer))(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
(!(objectclass=computer))(&(objectclass=user)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
(!objectclass=computer)(&(objectclass=user)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
Run Code Online (Sandbox Code Playgroud)
(真实用户没有对象类"计算机").
我正在使用PHP ldap实现,所以使用ldap_search()方法.
"不等于"语法在此处找到:http://technet.microsoft.com/en-us/library/aa996205%28EXCHG.65%29.aspx或此处:http://msdn.microsoft.com/ EN-US /库/ aa746475%28V = vs.85%29.aspx
也许我可以尝试过滤DN中的用户(!CN = Computers),但首先我想过滤(!objectclass = computer),因为它对我来说更合乎逻辑.
objectclass!="computer"表达式的正确语法是什么?
我见过的文档/网站显示,自定义验证应在去/lib或/lib/validators项目的目录.我发现(通过阅读另一篇文章的答案)他们似乎只是在工作config/initializers.有没有人知道,或者有一个指向官方文档的指针,显示自定义验证器应该存在的位置?
我正在编写一个应用程序,让用户直接从他们的电子邮件回复帖子或帖子,类似于Facebook.用户已经可以通过电子邮件添加新帖子,并且工作正常.
生成新帖子时,会向特定用户发送电子邮件警报,并创建一个唯一的回复地址,其中包含带有原始帖子/帖子ID的编码字符串.这工作正常.发送电子邮件,系统使用唯一的回复地址获取回复.
我的问题是尝试将电子邮件中的评论/回复与下面引用的原始电子邮件隔离开来.以下是收到的电子邮件正文的示例:
reply text
(Origional Email Header)On 10 March 2011 16:35, Example SIte
<pwKVb1BVUITY4Ai-fKR8ioPrR8Zki9cKBmAA0njXi8Y@example.us= > wrote:
Run Code Online (Sandbox Code Playgroud)
我曾想过使用识别字符或字符串,但每个电子邮件提供商在回复中以不同方式显示原始电子邮件.
有没有人有任何想法如何我从原始电子邮件的标题和正文中隔离回复文本?
谢谢,
克里斯.