草庐IT

ios - 核心蓝牙无法发现外设

我正在使用正在开发中的硬件。该板使用TICC2541作为蓝牙芯片。在测试之前,该板可被两个设备发现,并且我能够连接到该板并执行我写入和读取特性(GATT)的测试。我再次执行测试,一切正常,直到我重新连接到设备并尝试发现其服务。那时,开发板处于离线状态,lightblue和我自己的应用程序都无法检测到该设备。我在其中一台iOS设备(iPad)上恢复了出厂设置,但它仍然无法识别该板。恢复出厂设置是否应该删除设备上发生的所有核心蓝牙缓存,从而允许iOS重新缓存并重新发现电路板?这可能是核心蓝牙问题还是我的应用程序有问题? 最佳答案 你的问

ios - 从外设更改 CBAdvertisementDataManufacturerDataKey

有什么方法可以修改CBPeripheralManager的CBAdvertisementDataManufacturerDataKey吗?我知道我可以从CBCentralManager获取CBAdvertisementDataManufacturerDataKey。我想这样做的原因是因为我希望外围设备通告一个10字节的值,而不是让中央连接到它,发现服务,然后读取一个包含10字节值的特征。 最佳答案 不,从iOS7开始,这目前是不可能的。制造商数据由Apple保留并且不可修改(至少在非越狱设备上)。如果您正在为自己的外围设备编写固件,

ios - 同一台设备上的多个 ios 应用程序可以连接到同一外设吗?

从蓝牙4.2开始,一个外围设备可以连接到多个中央设备。那么是否有可能同一设备上的多个ios应用程序(充当中心)可以连接到同一外围设备? 最佳答案 为此您不需要新的蓝牙4.2。iOS中的CoreBluetooth使用单个引用计数连接到BLE外围设备。当第一个应用程序连接到它时,将建立物理连接。当第二个应用程序连接时,外围设备甚至不会注意到另一个应用程序已连接。两者都可以发出GATT命令,而外围设备无法决定哪个应用程序发送了它。从外围设备发送的通知将传送到两个应用程序(如果您在两个应用程序中都注册了通知)。当两个应用都断开外设时,物理连

ios - 外设名称不符合 NameKey

我有一个模拟心率监测外围设备的应用程序(Theperipheralapp)。我还有一个接收数据并显示数据的应用程序(中央应用程序)。中央应用根据其名称决定连接到已发现的外围设备。问题是这两个应用程序都运行良好,只是名称始终是“iPhone”。广告是这样做的:-(IBAction)switchChanged:(id)sender{if(self.advertisingSwitch.on){NSDictionary*advData=@{CBAdvertisementDataLocalNameKey:@"CustomName",CBAdvertisementDataServiceUUIDsK

ios - BLE OBDII外设使用方法

我正在尝试创建一个将从OBDII蓝牙4(LE)设备读取的iOS应用程序。我购买了Vgateicar3蓝牙(4.0)elm327OBDII。我把它插到我的车上,发现IOS-VLink外设宣传了一些服务。然后我可以获得这些服务的特征。这些是我找到的服务:但我不知道1803、1802、1811、1804和18F0服务是什么以及如何使用它们。这是我用来找出广告内容的简单程序。classViewController:UIViewController,CBCentralManagerDelegate,CBPeripheralDelegate{varcentralManager=CBCentralM

android - 如何在 ListView 外设置按钮

在我的Activity中,我有一个ListView和一个按钮。每个都有不同的目的。我的ListView显示另一个Activity中的项目详细信息。我的按钮打开另一个Activity。这里listview没有任何问题。但是我的按钮不起作用。在我的代码中,我对ListView和按钮使用了以下示例publicclassMainActivityextendsAppCompatActivityimplementsListView.OnItemClickListener{privateButtonbuttonaddticket;privateListViewlistView;@Overridepr

Android 4.3 作为低功耗蓝牙外设

快速提问。我似乎无法在Android文档中找到它,所以我认为这是不可能的,但是是否可以让Android4.3设备(在我的例子中是Nexus4)充当蓝牙外围设备?我知道iOS支持peripheral和central,但好像Android只支持central。我想使用蓝牙LE将Android设备连接到Mac,但由于OSX不支持外设模式而且Android看起来也不支持,我可能不得不使用蓝牙2或其他通信方式方法。 最佳答案 遗憾的是,Android设备无法充当外围设备。他可以创建GATT服务器、服务和特性,但无法制作广告。文档:http:/

android - 适用于 Raspberry Pi 3 的 Android Things 上的 UART 外设

如何在AndroidThingsforRaspberryPi3上使用UART外设?它似乎默认分配了linux控制台。 最佳答案 默认情况下,UART端口映射到linux控制台,以防止内核消息干扰您的外围设备。您可以通过使用以下方法从主机上的SD卡安装引导分区来禁用控制台:mount/dev/sdX1/mnt/disk其中sdX替换为您的sdcard读卡器设备名称(将sdcard插入读卡器后运行dmesg应该可以帮助您找出设备名称)。然后编辑/mnt/disk/cmdline.txt以替换以下内核引导参数:console=serial

android - 蓝牙外设 ADVERTISE_FAILED_DATA_TOO_LARGE

我正在尝试在NEXUS9中做广告并收到ADVERTISE_FAILED_DATA_TOO_LARGE错误。当我在成功转换广告后添加服务时,它工作得非常好,但是如果我通过广告数据生成器添加服务以便在扫描时其他设备可以过滤,我会收到错误代码1,即ADVERTISE_FAILED_DATA_TOO_LARGEa)工作代码publicvoidstartAdvertisingService(){AdvertiseSettingssettings=newAdvertiseSettings.Builder().setTxPowerLevel(AdvertiseSettings.ADVERTISE_T

android - 完善除IMEI、Android_ID、WLAN Mac和蓝牙地址外设备的unique_id

目标:我正在寻找一种方法来为Android设备找到unique_id。背景:我将在登录请求有效负载中使用Id,并且由于我的应用是基于许可的服务应用,因此在正常情况下Id不应更改。现有方法:在iOS中有一些uniqueidsolutionsforiOS例如CFUUID或identifierForVendor加上Keychain,广告标识符等。期待。但在Android中,我所知道的所有选项似乎都有漏洞。串号:TelephonyManagerTelephonyMgr=(TelephonyManager)getSystemService(TELEPHONY_SERVICE);Stringm_d