DtkBluetooth
BlueZ DBus interface binding for Qt
dbluetoothagent.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DBLUETOOTHAGENT_H
6#define DBLUETOOTHAGENT_H
7
8#include <DExpected>
9#include <QDBusObjectPath>
10#include "dtkbluetooth_global.h"
11#include "dbluetoothrequest.h"
12
13DBLUETOOTH_BEGIN_NAMESPACE
14
15class DDevice;
16
17class DAgent : public QObject
18{
19 Q_OBJECT
20public:
21 enum Capability { DisplayOnly, DisplayYesNo, KeyboardOnly, NoInputNoOutput };
22
23 Q_ENUM(Capability)
24
25 explicit DAgent(QObject *parent = nullptr);
26 ~DAgent() override = default;
27 virtual QDBusObjectPath agentPath() const = 0;
28 virtual Capability capability() const;
29
30public Q_SLOTS:
31 virtual void requestPinCode(QSharedPointer<DDevice> device, const DRequest<QString> &request);
32 virtual void displayPinCode(QSharedPointer<DDevice> device, const QString &pinCode);
33 virtual void requestPasskey(QSharedPointer<DDevice> device, const DRequest<quint32> &request);
34 virtual void displayPasskey(QSharedPointer<DDevice> device, const QString &passkey, const QString &entered);
35 virtual void requestConfirmation(QSharedPointer<DDevice> device, const QString &passkey, const DRequest<> &request);
36 virtual void requestAuthorization(QSharedPointer<DDevice> device, const DRequest<> &request);
37 virtual void authorizeService(QSharedPointer<DDevice> device, const QString &uuid, const DRequest<> &request);
38 virtual void cancel();
39 virtual void release();
40};
41
42DBLUETOOTH_END_NAMESPACE
43
44#endif
对于自定义蓝牙代理的封装
Definition: dbluetoothagent.h:18
virtual void displayPasskey(QSharedPointer< DDevice > device, const QString &passkey, const QString &entered)
要求显示密钥
virtual void authorizeService(QSharedPointer< DDevice > device, const QString &uuid, const DRequest<> &request)
当服务守护程序需要授权一个连接/服务请求时,这个方法被调用
virtual void requestConfirmation(QSharedPointer< DDevice > device, const QString &passkey, const DRequest<> &request)
请求确认密钥
virtual void requestAuthorization(QSharedPointer< DDevice > device, const DRequest<> &request)
调用该方法以要求用户授权一个传入的配对尝试
virtual void requestPinCode(QSharedPointer< DDevice > device, const DRequest< QString > &request)
获取认证用的pin码
virtual void displayPinCode(QSharedPointer< DDevice > device, const QString &pinCode)
要求显示pin码
virtual Capability capability() const
自定义蓝牙代理拥有的能力
virtual void requestPasskey(QSharedPointer< DDevice > device, const DRequest< quint32 > &request)
获取认证用的密钥
Capability
蓝牙代理输入输出的能力
Definition: dbluetoothagent.h:21
virtual void release()
注销自定义代理时使用, 用来释放资源
virtual QDBusObjectPath agentPath() const =0
获取自定义蓝牙代理的DBus对象路径
virtual void cancel()
在返回应答前调用此接口来指示代理请求失败
对于D-Bus请求的简单封装, 方便在自定义代理是处理来自蓝牙服务的请求
Definition: dbluetoothrequest.h:18