求教qten为何搜索不到bose蓝牙音响删除设备设备捏

3812人阅读
Windows(12)
如何使用windows蓝牙api搜索蓝牙设备可参考我的另外一篇文章。使用如下代码可以借助windows自动安装串口驱动(如果远程蓝牙设备支持串口服务的话)。BluetoothSetServiceState ( hbr, &btdi, &SerialPortServiceClass_UUID, BLUETOOTH_SERVICE_ENABLE );//打开远程蓝牙设备上的服务以便使用,其中hbr为BluetoothFindFirstRadio或BluetoothFindNextRadio所得的本地蓝牙Radio对应的句柄,btdi为要设置的远程蓝牙设备对应的BLUETOOTH_DEVICE_INFO对象
使用BluetoothAuthenticateDevice来完成自动配对,如下:
BluetoothAuthenticateDevice(phnd,hbr,&(btdi),AUTHENTICATION_PASSKEY,4);//btdi为要配对的远程蓝牙设备的BLUETOOTH_DEVICE_INFO,AUTHENTICATION_PASSKEY为配对使用的配对码,是一个字符串数组的指针,之后的参数是配对码的长度。整个Qt的代码如下:
#ifndef BTCOMTEST_H//btcomtest.h
#define BTCOMTEST_H
#pragma once
#include &QtGui/QMainWindow&
#include "ui_btcomtest.h"
#include &windows.h&
#include &BluetoothAPIs.h&
#include &conio.h&
#include &iostream&
#include &string&
#include &locale&
#include &winsock2.h&
#pragma comment(lib,"ws2_32.lib")
#include &ws2bth.h&
#include &stdio.h&
#include &bthsdpdef.h&
#pragma comment ( lib, "Irprops.lib")
#include &tchar.h&
// 配对时用得PIN码
#define AUTHENTICATION_PASSKEY _T("1234")
//常用操作符
#define LENGTH(x) sizeof(x)/sizeof(x[0])
#include &QList&
//#include "mybluetooth.h"
#pragma comment(lib,"Bthprops.lib")
typedef struct _AUTHENTICATION_CALLBACK_Para
LPVOID lpBlueT
} t_AUTHENTICATION_CALLBACK_P
class btcomTest : public QMainWindow
btcomTest(QWidget *parent = 0, Qt::WFlags flags = 0);
~btcomTest();
public slots:
void searchBt();
void connectRemoteDevice();
Ui::btcomTestC
QList&BLUETOOTH_DEVICE_INFO& btDeviceL
/*static BOOL AUTHENTICATION_CALLBACK (LPVOID pvParam, PBLUETOOTH_DEVICE_INFO pDevice);*/
static BOOL AUTHENTICATION_CALLBACK (PVOID pvParam, PBLUETOOTH_DEVICE_INFO pDevice);
QString getMAC(BLUETOOTH_ADDRESS Daddress);
#endif // BTCOMTEST_H
#include "btcomtest.h"//btcomtest.cpp
#include &QString&
#include &QDebug&
btcomTest::btcomTest(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
ui.setupUi(this);
connect(ui.searchBtn,SIGNAL(clicked()),this,SLOT(searchBt()));
connect(ui.clearBtn,SIGNAL(clicked()),ui.btListBox,SLOT(clear()));
connect(ui.connectBtn,SIGNAL(clicked()),this,SLOT(connectRemoteDevice()));
hbr = NULL;
//qDebug()&&QString::number(171,16);
btcomTest::~btcomTest()
CloseHandle(hbr);
void btcomTest::searchBt()
ui.btListBox-&clear();
btDeviceList.clear();
HBLUETOOTH_RADIO_FIND hbf = NULL;
HBLUETOOTH_DEVICE_FIND hbdf = NULL;
BLUETOOTH_FIND_RADIO_PARAMS btfrp = { sizeof(BLUETOOTH_FIND_RADIO_PARAMS) };
BLUETOOTH_RADIO_INFO bri = { sizeof(BLUETOOTH_RADIO_INFO)};
BLUETOOTH_DEVICE_SEARCH_PARAMS btsp = { sizeof(BLUETOOTH_DEVICE_SEARCH_PARAMS) };
BLUETOOTH_DEVICE_INFO btdi = { sizeof(BLUETOOTH_DEVICE_INFO) };
hbf=BluetoothFindFirstRadio(&btfrp, &hbr);
bool brfind = hbf != NULL;
if (brfind&&BluetoothGetRadioInfo(hbr, &bri) == ERROR_SUCCESS)
qDebug()&&"LocalName:"&&bri.szN
btsp.hRadio =
btsp.fReturnAuthenticated = FALSE;
btsp.fReturnConnected = FALSE;
btsp.fReturnRemembered = FALSE;
btsp.fReturnUnknown = TRUE;
btsp.fIssueInquiry=TRUE;
btsp.cTimeoutMultiplier = 5;
hbdf=BluetoothFindFirstDevice(&btsp, &btdi);
bool bfind = hbdf != NULL;
while (bfind)
QString btInfo=QString::fromWCharArray(btdi.szName)+"
"+getMAC(btdi.Address);
//QString btInfo=QString::fromWCharArray(btdi.szName)+":"+QString::number(btdi.Address.ullLong,16);
qDebug()&&btI
if (btInfo.contains("Alpha"))
btDeviceList.append(btdi);
ui.btListBox-&addItem(btInfo);
bfind=BluetoothFindNextDevice(hbdf, &btdi);
BluetoothFindDeviceClose(hbdf);
BluetoothFindRadioClose(hbf);
void btcomTest::connectRemoteDevice()
BLUETOOTH_DEVICE_INFO btdi=btDeviceList.at(ui.btListBox-&currentRow());
qDebug("hbr:%x BtName:",btdi.Address.ullLong);
qDebug()&&QString::fromWCharArray(btdi.szName);
BluetoothSetServiceState ( hbr, &btdi, &SerialPortServiceClass_UUID, BLUETOOTH_SERVICE_ENABLE );
//t_AUTHENTICATION_CALLBACK_Para *pCallback=new t_AUTHENTICATION_CALLBACK_P
//pCallback-&hRadio=
//pCallback-&lpBlueTooth=NULL;
//HBLUETOOTH_AUTHENTICATION_REGISTRATION phRegH
////BluetoothAuthenticateDevice ( NULL, hbr, &btdi, AUTHENTICATION_PASSKEY, (ULONG)wcslen(AUTHENTICATION_PASSKEY) );
//PFN_AUTHENTICATION_CALLBACK a=(PFN_AUTHENTICATION_CALLBACK)AUTHENTICATION_CALLBACK;
//BluetoothRegisterForAuthentication (&btdi,&phRegHandle,a,hbr);
if (!btdi.fAuthenticated)
BluetoothSetServiceState ( hbr, &(btdi), &SerialPortServiceClass_UUID, BLUETOOTH_SERVICE_ENABLE );
BluetoothAuthenticateDevice(this-&winId(),hbr,&(btdi),AUTHENTICATION_PASSKEY,4);
BluetoothUpdateDeviceRecord(&(btdi));
bool resultConnect=btdi.fA
while (resultConnect!=true)
BluetoothAuthenticateDevice(winId(),hbr,&(btdi),AUTHENTICATION_PASSKEY,4);
BluetoothUpdateDeviceRecord(&(btdi));
resultConnect=btdi.fA
BOOL btcomTest::AUTHENTICATION_CALLBACK( PVOID pvParam, PBLUETOOTH_DEVICE_INFO pDevice )
HANDLE mRadio=(HANDLE) pvP
if (mRadio)
DWORD result= BluetoothUpdateDeviceRecord ( pDevice );
result=ERROR_SUCCESS;
result=BluetoothSendAuthenticationResponse ( mRadio, pDevice, AUTHENTICATION_PASSKEY );
if (result==ERROR_SUCCESS)
return TRUE;
return FALSE;
QString btcomTest::getMAC( BLUETOOTH_ADDRESS Daddress )
//QString addr= QString::number(Daddress.rgBytes[5],16)+":"+QString::number(Daddress.rgBytes[4],16)+":"+QString::number(Daddress.rgBytes[3],16)+":"+QString::number(Daddress.rgBytes[2],16)+":"+QString::number(Daddress.rgBytes[1],16)+":"+QString::number(Daddress.rgBytes[0],16);
//QString addr=QString("%1:%2:%3:%4:%5:%6").arg(Daddress.rgBytes[5],2,16).arg(Daddress.rgBytes[4],2,16).arg(Daddress.rgBytes[3],2,16).arg(Daddress.rgBytes[2],2,16).arg(Daddress.rgBytes[1],2,16).arg(Daddress.rgBytes[0],2,16);
addr=addr.sprintf("%02x:%02x:%02x:%02x:%02x:%02x",Daddress.rgBytes[5],Daddress.rgBytes[4],Daddress.rgBytes[3],Daddress.rgBytes[2],Daddress.rgBytes[1],Daddress.rgBytes[0]);Qt 蓝牙开发 获取本地设备信息
[问题点数:40分,结帖人chenwh_cn]
Qt 蓝牙开发 获取本地设备信息
[问题点数:40分,结帖人chenwh_cn]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|  版权声明:本文为MULTIBEANS ORG研发跟随文章,未经MLT ORG允许不得转载。
  最近做项目,需要开发安卓应用,实现串口的收发,目测CH340G在安卓手机上非常麻烦,而且驱动都是Java版本的, 就没选择,博主在大二的时候学习过Java SE基本的语法,写过一些小程序就放弃了Java的道路。最后选择了蓝牙无线透传模块,实现串口通信。现在Qt跨平台支持安卓,是在是令人欣喜。在网上找资料,用Qt on Android做蓝牙驱动的几乎没有,也没有相关例程,所以准备撰写此文,献给广大嵌入式程序员们
一、软硬件平台
1.1 硬件平台
1. 蓝牙:HC-05,(淘宝上有卖),它的接口就是跟串口一样的,我们用到了TX,RX,GND,VCC四个引脚。跟下位机或者用CH340G TTL转USB模块接到PC机上。蓝牙工作在串口模式可以通过AT指令调节。具体参考蓝牙配套的说明文档,最主要的就是请将蓝牙设定为从机模式,否则安卓手机搜寻链接不上。2.安卓手机:我这里测试用了2台安卓手机,一台是小米4移动版,安卓版本6.0.1;一台是MOTO MT887,安卓版本4.1.2。
1.2 软件平台
本项目Qt版本是5.7,系统是windows 8.1 x64
二、软件基本介绍
  因为第一次做蓝牙,就做一个非常简单的雏形,实现蓝牙状态检测、蓝牙的开关、蓝牙的扫描和蓝牙配对链接,并且能像串口助手一样完成数据收发。如图,就是本一开始做的最简单的软件界面,本软件基于QWidget控件制作,当然你可以选择mainwinodw,更可以自己定义类。
  我不用介绍每个部位是什么了,都会明白吧?蓝牙打开后通过扫描,会将蓝牙的MAC地址还有名字显示在List中,我们双击List列表中的蓝牙,就会进入actived信号连接的槽函数,执行蓝牙的配对连接。建立连接之后,就类似串口一样可以进行数据通信了。另外,点击send按钮之后会发送一堆字符串。
三、 蓝牙开发
3.1 项目文件准备
需要用到蓝牙就需要在.pro文件中引入库,我没有用Qt quick,用的是纯C++写的代码,你需要在.pro文件中加入这句话:
QT += bluetooth
如果没有这句话的话,包含蓝牙目录下的头文件,会提示找不到该文件。
之后就是要包含一些蓝牙用到的头文件:
#include &QtBluetooth/qbluetoothglobal.h&
#include &QtBluetooth/qbluetoothlocaldevice.h&
#include &qbluetoothaddress.h&
#include &qbluetoothdevicediscoveryagent.h&
#include &qbluetoothlocaldevice.h&
#include &qbluetoothsocket.h&
  一会儿介绍每个都是做什么的。
请在类中声明定义蓝牙相关句柄:
QBluetoothDeviceDiscoveryAgent *discoveryA
QBluetoothLocalDevice *localD
QBluetoothSocket *
  第一个discoveryAgent是用来对周围蓝牙进行搜寻,localDevice顾名思义,就是对本地设备进行操作,比如进行设备的打开,设备的关闭等等。socket就是用来进行蓝牙配对链接和数据传输的。这里要用到这三个。
3.2 蓝牙开关和可见性设定
在构造函数中,请为localDevice使用new运算符分配内存。
localDevice = new QBluetoothLocalDevice();
1) 蓝牙开关
本设计在运行APP的时候,会检测一下我们本地设备的蓝牙是否打开,如果判断是开启状态,我们可以将打开蓝牙的按钮disable掉,将关闭蓝牙的按钮enable,所以在APP运行的时候需要进行蓝牙状态检测。检测方法如下:
进行一个这样的检测,对本地设备模式进行判断。
if( localDevice-&hostMode() == QBluetoothLocalDevice::HostPoweredOff )
ui-&pushButton_openBluetooth-&setEnabled(true);
ui-&pushButton_closeDevice-&setEnabled(false);
ui-&pushButton_openBluetooth-&setEnabled(false);
ui-&pushButton_closeDevice-&setEnabled(true);
在构造函数中
那么,我们如何来对蓝牙进行打开和关闭呢?我在open按钮和close按钮的槽函数中对蓝牙进行开关操作。
open按钮的槽函数:
void Widget::on_pushButton_openBluetooth_clicked()
localDevice-&powerOn();
ui-&pushButton_closeDevice-&setEnabled(true);
ui-&pushButton_openBluetooth-&setEnabled(false);
ui-&pushButton_scan-&setEnabled(true);
localDevice-&powerOn();方法调用打开本地的蓝牙设备,然后你可以根据自己的喜好完成对按钮的使能和禁止操作。
close按钮的槽函数:
void Widget::on_pushButton_closeDevice_clicked()
localDevice-&setHostMode(QBluetoothLocalDevice::HostPoweredOff);
ui-&pushButton_closeDevice-&setEnabled(false);
ui-&pushButton_openBluetooth-&setEnabled(true);
ui-&pushButton_scan-&setEnabled(false);
close设备和我们的open设备的方法在形式上不一样,我还以为他们两个是对称的,但是事实上不是,只能用这样的方法对蓝牙进行关闭。
2) 蓝牙可见性
  同样地,在蓝牙使用过程中,安卓手机提供了蓝牙是否可以被其他蓝牙搜索到这样的功能,也就是蓝牙可见,我们也可以用localDevice下的HostMode()方法,对这个状态进行检测。如下:
if( localDevice-&hostMode() == QBluetoothLocalDevice::HostDiscoverable ) {
ui-&checkBox_discoverable-&setChecked(true);
ui-&checkBox_discoverable-&setChecked(false);
我的设计中,蓝牙可见如界面图用的是checkBox空间完成的,通过setChecked()方法,一开机对是否可见进行。
在翻转checkBox的时候,会激发进入checkBox的槽函数,我们在checkBox的槽函数中,完成对蓝牙可见性的设定。代码如下:
localDevice-&setHostMode( QBluetoothLocalDevice::HostDiscoverable);
同理,不可见你也能想到对吧。
3.3 蓝牙设备的查找
  使用蓝牙设备的查找,就要用到&discoveryAgent 这个类的实例化。我们需要在构造函数中对discoveryAgent =new QBluetoothDeviceDiscoveryAgent();分配内存。然后就可以使用这个类的方法来对蓝牙进行查找了。除此之外,还要进行一个信号和槽的链接。
connect(discoveryAgent,
SIGNAL(deviceDiscovered(QBluetoothDeviceInfo)),
SLOT(addBlueToothDevicesToList(QBluetoothDeviceInfo))
  在我们发现设备的时候,这个deviceDiscovered信号被触发,进入到addBlueToothDevicesToList的函数中。在上面的软件界面,我们的最上面蓝牙列表下的控件是ListIte控件,这里做一个槽函数,将发现的设备打印到这个列表中列出来。
void Widget::addBlueToothDevicesToList( const QBluetoothDeviceInfo &info )
QString label = QString("%1 %2").arg(info.address().toString()).arg(info.name());
QList&QListWidgetItem *& items = ui-&list-&findItems(label, Qt::MatchExactly);
if (items.empty()) {
QListWidgetItem *item = new QListWidgetItem(label);
QBluetoothLocalDevice::Pairing pairingStatus = localDevice-&pairingStatus(info.address());
if (pairingStatus == QBluetoothLocalDevice::Paired || pairingStatus == QBluetoothLocalDevice::AuthorizedPaired )
item-&setTextColor(QColor(Qt::green));
item-&setTextColor(QColor(Qt::black));
ui-&list-&addItem(item);
  这里给出这个函数,每一句话十分的好理解,这里增加点选操作,当点击listItem中的项目的时候,背景颜色会翻转,双击这个项目就会和这个蓝牙设备建立连接,这里有个actived槽函数,在这个槽函数里面就会进行蓝牙的链接。下一章节写这个如何连接。
3.4 蓝牙设备的建立连接
  在说蓝牙设备连接之前,不得不提一个非常重要的概念,就是蓝牙的Uuid,引用一下百度的:
  在蓝牙中,每个服务和服务属性都唯一地由"全球唯一标识符" (UUID)来校验。正如它的名字所暗示的,每一个这样的标识符都要在时空上保证唯一。UUID类可表现为短整形(16或32位)和长整形(128位)UUID。他提供了分别利用String和16位或32位数值来创建类的构造函数,提供了一个可以比较两个UUID(如果两个都是128位)的方法,还有一个可以转换一个UUID为一个字符串的方法。UUID实例是不可改变的(immutable),只有被UUID标示的服务可以被发现。在Linux下你用一个命令uuidgen -t可以生成一个UUID值;在Windows下则执行命令uuidgen 。UUID看起来就像如下的这个形式:2dfb-47c2-8d9f-10b8ec891363。当使用生成的UUID去创建一个UUID对象,你可以去掉连字符。
在我们的项目中,用到的模式是串口模式,我们需要建立一个存储Uuid的机制,如下:
static const QLatin1String serviceUuid("0-805F9B34FB");
这个字符串里面的内容就是串口模式的Uuid,如果你开发的蓝牙也是要使用串口,你直接Copy过去就可以了,如果你使用其他模式,自己去找这个Uuid码是多少。
在使用蓝牙建立连接,需要建立蓝牙socket服务。请在构造函数中增加对socket的分配内存,要注意的是构造函数中的参数需要给定模式。
socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);
  在Qt文档中,给了3中模式,具体如何这里不做引申,读者需要请自己查询文档。但RfcommProtocol,属于模拟RS232模式,我就叫串口模式了。
  在上一节中说了,当双击ItemList控件中的项目时候,会进入到actived槽函数和蓝牙进行链接,那么如何连接呢?在itemList中会打印一个蓝牙的MAC地址信息,我们会将这个Mac地址保存在QBluetoothAddress这个类的实例化中,并将这个address传递给socket,作为链接依据。
void Widget::itemActivated(QListWidgetItem *item)
QString text = item-&text();
int index = text.indexOf(' ');
if (index == -1)
QBluetoothAddress address(text.left(index));
QString name(text.mid(index + 1));
qDebug() && "You has choice the bluetooth address is " &&
qDebug() && "The device is connneting.... ";
QMessageBox::information(this,tr("Info"),tr("The device is connecting..."));
socket-&connectToService(address, QBluetoothUuid(serviceUuid) ,QIODevice::ReadWrite);
  我们通过对字符串的处理,将得到address信息。通过socket-&connectToService(....),把地址,Uuid,和蓝牙模式传递进去,当执行完这句话的时候,安卓手机开始和你
&  选择的蓝牙设备进行链接。
  同样在socket中也提供了丰富的槽函数,比如成功建立连接信号,成功断开信号,这里在槽函数中可以做一些例子,这里给出例子:
connect(socket,
SIGNAL(connected()),
SLOT(bluetoothConnectedEvent())
connect(socket,
SIGNAL(disconnected()),
SLOT(bluetoothDisconnectedEvent())
void Widget::bluetoothConnectedEvent()
更新一下,请在这里插入关闭蓝牙查找服务,否则数据会断。
// 具体语句是什么我忘记了,反正使用discoveryAgent的一个什么close,或者stop的方法
qDebug() && "The android device has been connected successfully!";
QMessageBox::information(this,tr("Info"),tr("successful connection!"));
void Widget::bluetoothDisconnectedEvent()
qDebug() && "The android device has been disconnected successfully!";
QMessageBox::information(this,tr("Info"),tr("successful disconnection!"));
最后,还有一个断开连接函数。通过断开连接按钮的槽函数实现。
void Widget::on_pushButton_disconnect_clicked()
socket-&disconnectFromService();
3.5 发送和接收数据
  蓝牙发送和接收数据,也是通过socket进行。发送数据十分简单:
void Widget::on_pushButton_send_clicked()
QByteArray arrayD
QString s("Hello Windows!!!\nThis message is sended via bluetooth of android device!\n");
arrayData = s.toUtf8();
socket-&write(arrayData);
这里通过socket-&write函数,完成发送。发送之后,上位机,我用的串口助手会显示该信息。
串口助手接受到信息
那么接收数据呢?
我们在构造函数中,需要建立这样的一个信号和槽的链接:
connect(socket,
SIGNAL(readyRead()),
SLOT(readBluetoothDataEvent())
readyRead()信号触发,跳进readBluetoothDataEvent中。
void Widget::readBluetoothDataEvent()
QByteArray line = socket-&readAll();
QString strData = line.toHex();
comStr.append(strData);
qDebug() &&"rec data is: "&& comS
qDebug() &&"The comStr length is: " && comStr.length();
if(comStr.length() &= 30) {
ui-&textBrowser_info-&append(comStr + "\n");
comStr.clear();
我这里是这样处理的,当然了,你有你自己的处理方法,意思就是那么个意思。
四、结束语
完成对蓝牙的开发,实现了最基本的功能,这里为了讲述用Qt开发蓝牙在安卓设备上,用了最简单最简单的例子,给你一个思路框架方法,如果追求极高的稳定性,好需要自
己深入研究,这里不做讨论。欢迎批评指正,我也是一个求学者,大家共同交流,共同进步。最后,贴上源码,仅供大家参考。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
百度云链接:
提取码: zykk
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
阅读(...) 评论()&>&qt蓝牙聊天工具
qt蓝牙聊天工具
上传大小:94KB
qt编辑的界面化聊天工具,是通过蓝牙连接,可以实现聊天功能
综合评分:0
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
综合评分:
积分/C币:3
综合评分:
积分/C币:15
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
qt蓝牙聊天工具
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
qt蓝牙聊天工具}

我要回帖

更多关于 连接蓝牙音响外围设备 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信