实例介绍
由于bluez并没有提供官方可用的C语言 gatt库,所以我对源码结构做了些修改,把用到的ap编译成静态库,使用前阅读readme.txt 详情参考https://blog.csdn.net/u010659887/article/details/85329276
【实例截图】
【核心代码】
ble_gatt_lib.tar
└── ble_conn_so
├── btio
│ ├── btio.c
│ └── btio.h
├── conn.c
├── include
│ ├── a2mp.h
│ ├── amp.h
│ ├── bluetooth
│ │ ├── bluetooth.h
│ │ ├── bnep.h
│ │ ├── cmtp.h
│ │ ├── hci.h
│ │ ├── hci_lib.h
│ │ ├── hidp.h
│ │ ├── l2cap.h
│ │ ├── rfcomm.h
│ │ ├── sco.h
│ │ ├── sdp.h
│ │ └── sdp_lib.h
│ ├── bluetooth.h
│ ├── bnep.h
│ ├── cmtp.h
│ ├── dbus-1.0
│ │ └── dbus
│ │ ├── dbus-address.h
│ │ ├── dbus-bus.h
│ │ ├── dbus-connection.h
│ │ ├── dbus-errors.h
│ │ ├── dbus.h
│ │ ├── dbus-macros.h
│ │ ├── dbus-memory.h
│ │ ├── dbus-message.h
│ │ ├── dbus-misc.h
│ │ ├── dbus-pending-call.h
│ │ ├── dbus-protocol.h
│ │ ├── dbus-server.h
│ │ ├── dbus-shared.h
│ │ ├── dbus-signature.h
│ │ ├── dbus-syntax.h
│ │ ├── dbus-threads.h
│ │ └── dbus-types.h
│ ├── expat_config.h
│ ├── expat_external.h
│ ├── expat.h
│ ├── ffi.h
│ ├── ffitarget.h
│ ├── gattlib.h
│ ├── gio-unix-2.0
│ │ └── gio
│ │ ├── gdesktopappinfo.h
│ │ ├── gfiledescriptorbased.h
│ │ ├── gunixconnection.h
│ │ ├── gunixcredentialsmessage.h
│ │ ├── gunixfdlist.h
│ │ ├── gunixfdmessage.h
│ │ ├── gunixinputstream.h
│ │ ├── gunixmounts.h
│ │ ├── gunixoutputstream.h
│ │ └── gunixsocketaddress.h
│ ├── glib-2.0
│ │ ├── gio
│ │ │ ├── gactiongroupexporter.h
│ │ │ ├── gactiongroup.h
│ │ │ ├── gaction.h
│ │ │ ├── gactionmap.h
│ │ │ ├── gappinfo.h
│ │ │ ├── gapplicationcommandline.h
│ │ │ ├── gapplication.h
│ │ │ ├── gasyncinitable.h
│ │ │ ├── gasyncresult.h
│ │ │ ├── gbufferedinputstream.h
│ │ │ ├── gbufferedoutputstream.h
│ │ │ ├── gbytesicon.h
│ │ │ ├── gcancellable.h
│ │ │ ├── gcharsetconverter.h
│ │ │ ├── gcontenttype.h
│ │ │ ├── gconverter.h
│ │ │ ├── gconverterinputstream.h
│ │ │ ├── gconverteroutputstream.h
│ │ │ ├── gcredentials.h
│ │ │ ├── gdatainputstream.h
│ │ │ ├── gdataoutputstream.h
│ │ │ ├── gdbusactiongroup.h
│ │ │ ├── gdbusaddress.h
│ │ │ ├── gdbusauthobserver.h
│ │ │ ├── gdbusconnection.h
│ │ │ ├── gdbuserror.h
│ │ │ ├── gdbusinterface.h
│ │ │ ├── gdbusinterfaceskeleton.h
│ │ │ ├── gdbusintrospection.h
│ │ │ ├── gdbusmenumodel.h
│ │ │ ├── gdbusmessage.h
│ │ │ ├── gdbusmethodinvocation.h
│ │ │ ├── gdbusnameowning.h
│ │ │ ├── gdbusnamewatching.h
│ │ │ ├── gdbusobject.h
│ │ │ ├── gdbusobjectmanagerclient.h
│ │ │ ├── gdbusobjectmanager.h
│ │ │ ├── gdbusobjectmanagerserver.h
│ │ │ ├── gdbusobjectproxy.h
│ │ │ ├── gdbusobjectskeleton.h
│ │ │ ├── gdbusproxy.h
│ │ │ ├── gdbusserver.h
│ │ │ ├── gdbusutils.h
│ │ │ ├── gdrive.h
│ │ │ ├── gemblemedicon.h
│ │ │ ├── gemblem.h
│ │ │ ├── gfileattribute.h
│ │ │ ├── gfileenumerator.h
│ │ │ ├── gfile.h
│ │ │ ├── gfileicon.h
│ │ │ ├── gfileinfo.h
│ │ │ ├── gfileinputstream.h
│ │ │ ├── gfileiostream.h
│ │ │ ├── gfilemonitor.h
│ │ │ ├── gfilenamecompleter.h
│ │ │ ├── gfileoutputstream.h
│ │ │ ├── gfilterinputstream.h
│ │ │ ├── gfilteroutputstream.h
│ │ │ ├── gicon.h
│ │ │ ├── ginetaddress.h
│ │ │ ├── ginetaddressmask.h
│ │ │ ├── ginetsocketaddress.h
│ │ │ ├── ginitable.h
│ │ │ ├── ginputstream.h
│ │ │ ├── gioenums.h
│ │ │ ├── gioenumtypes.h
│ │ │ ├── gioerror.h
│ │ │ ├── gio.h
│ │ │ ├── giomodule.h
│ │ │ ├── gioscheduler.h
│ │ │ ├── giostream.h
│ │ │ ├── giotypes.h
│ │ │ ├── gloadableicon.h
│ │ │ ├── gmemoryinputstream.h
│ │ │ ├── gmemoryoutputstream.h
│ │ │ ├── gmenuexporter.h
│ │ │ ├── gmenu.h
│ │ │ ├── gmenumodel.h
│ │ │ ├── gmount.h
│ │ │ ├── gmountoperation.h
│ │ │ ├── gnativevolumemonitor.h
│ │ │ ├── gnetworkaddress.h
│ │ │ ├── gnetworking.h
│ │ │ ├── gnetworkmonitor.h
│ │ │ ├── gnetworkservice.h
│ │ │ ├── gnotification.h
│ │ │ ├── goutputstream.h
│ │ │ ├── gpermission.h
│ │ │ ├── gpollableinputstream.h
│ │ │ ├── gpollableoutputstream.h
│ │ │ ├── gpollableutils.h
│ │ │ ├── gpropertyaction.h
│ │ │ ├── gproxyaddressenumerator.h
│ │ │ ├── gproxyaddress.h
│ │ │ ├── gproxy.h
│ │ │ ├── gproxyresolver.h
│ │ │ ├── gremoteactiongroup.h
│ │ │ ├── gresolver.h
│ │ │ ├── gresource.h
│ │ │ ├── gseekable.h
│ │ │ ├── gsettingsbackend.h
│ │ │ ├── gsettings.h
│ │ │ ├── gsettingsschema.h
│ │ │ ├── gsimpleactiongroup.h
│ │ │ ├── gsimpleaction.h
│ │ │ ├── gsimpleasyncresult.h
│ │ │ ├── gsimplepermission.h
│ │ │ ├── gsimpleproxyresolver.h
│ │ │ ├── gsocketaddressenumerator.h
│ │ │ ├── gsocketaddress.h
│ │ │ ├── gsocketclient.h
│ │ │ ├── gsocketconnectable.h
│ │ │ ├── gsocketconnection.h
│ │ │ ├── gsocketcontrolmessage.h
│ │ │ ├── gsocket.h
│ │ │ ├── gsocketlistener.h
│ │ │ ├── gsocketservice.h
│ │ │ ├── gsrvtarget.h
│ │ │ ├── gsubprocess.h
│ │ │ ├── gsubprocesslauncher.h
│ │ │ ├── gtask.h
│ │ │ ├── gtcpconnection.h
│ │ │ ├── gtcpwrapperconnection.h
│ │ │ ├── gtestdbus.h
│ │ │ ├── gthemedicon.h
│ │ │ ├── gthreadedsocketservice.h
│ │ │ ├── gtlsbackend.h
│ │ │ ├── gtlscertificate.h
│ │ │ ├── gtlsclientconnection.h
│ │ │ ├── gtlsconnection.h
│ │ │ ├── gtlsdatabase.h
│ │ │ ├── gtlsfiledatabase.h
│ │ │ ├── gtlsinteraction.h
│ │ │ ├── gtlspassword.h
│ │ │ ├── gtlsserverconnection.h
│ │ │ ├── gvfs.h
│ │ │ ├── gvolume.h
│ │ │ ├── gvolumemonitor.h
│ │ │ ├── gzlibcompressor.h
│ │ │ └── gzlibdecompressor.h
│ │ ├── glib
│ │ │ ├── deprecated
│ │ │ │ ├── gallocator.h
│ │ │ │ ├── gcache.h
│ │ │ │ ├── gcompletion.h
│ │ │ │ ├── gmain.h
│ │ │ │ ├── grel.h
│ │ │ │ └── gthread.h
│ │ │ ├── galloca.h
│ │ │ ├── garray.h
│ │ │ ├── gasyncqueue.h
│ │ │ ├── gatomic.h
│ │ │ ├── gbacktrace.h
│ │ │ ├── gbase64.h
│ │ │ ├── gbitlock.h
│ │ │ ├── gbookmarkfile.h
│ │ │ ├── gbytes.h
│ │ │ ├── gcache.h
│ │ │ ├── gcharset.h
│ │ │ ├── gchecksum.h
│ │ │ ├── gcompletion.h
│ │ │ ├── gconvert.h
│ │ │ ├── gdataset.h
│ │ │ ├── gdate.h
│ │ │ ├── gdatetime.h
│ │ │ ├── gdir.h
│ │ │ ├── genviron.h
│ │ │ ├── gerror.h
│ │ │ ├── gfileutils.h
│ │ │ ├── ggettext.h
│ │ │ ├── ghash.h
│ │ │ ├── ghmac.h
│ │ │ ├── ghook.h
│ │ │ ├── ghostutils.h
│ │ │ ├── gi18n.h
│ │ │ ├── gi18n-lib.h
│ │ │ ├── giochannel.h
│ │ │ ├── gkeyfile.h
│ │ │ ├── glibconfig.h
│ │ │ ├── glist.h
│ │ │ ├── gmacros.h
│ │ │ ├── gmain.h
│ │ │ ├── gmappedfile.h
│ │ │ ├── gmarkup.h
│ │ │ ├── gmem.h
│ │ │ ├── gmessages.h
│ │ │ ├── gnode.h
│ │ │ ├── goption.h
│ │ │ ├── gpattern.h
│ │ │ ├── gpoll.h
│ │ │ ├── gprimes.h
│ │ │ ├── gprintf.h
│ │ │ ├── gqsort.h
│ │ │ ├── gquark.h
│ │ │ ├── gqueue.h
│ │ │ ├── grand.h
│ │ │ ├── gregex.h
│ │ │ ├── grel.h
│ │ │ ├── gscanner.h
│ │ │ ├── gsequence.h
│ │ │ ├── gshell.h
│ │ │ ├── gslice.h
│ │ │ ├── gslist.h
│ │ │ ├── gspawn.h
│ │ │ ├── gstdio.h
│ │ │ ├── gstrfuncs.h
│ │ │ ├── gstringchunk.h
│ │ │ ├── gstring.h
│ │ │ ├── gtestutils.h
│ │ │ ├── gthread.h
│ │ │ ├── gthreadpool.h
│ │ │ ├── gtimer.h
│ │ │ ├── gtimezone.h
│ │ │ ├── gtrashstack.h
│ │ │ ├── gtree.h
│ │ │ ├── gtypes.h
│ │ │ ├── gunicode.h
│ │ │ ├── gurifuncs.h
│ │ │ ├── gutils.h
│ │ │ ├── gvariant.h
│ │ │ ├── gvarianttype.h
│ │ │ ├── gversion.h
│ │ │ ├── gversionmacros.h
│ │ │ └── gwin32.h
│ │ ├── glibconfig.h
│ │ ├── glib.h
│ │ ├── glib-object.h
│ │ ├── glib-unix.h
│ │ ├── gmodule.h
│ │ └── gobject
│ │ ├── gbinding.h
│ │ ├── gboxed.h
│ │ ├── gclosure.h
│ │ ├── genums.h
│ │ ├── glib-types.h
│ │ ├── gmarshal.h
│ │ ├── gobject.h
│ │ ├── gobjectnotifyqueue.c
│ │ ├── gparam.h
│ │ ├── gparamspecs.h
│ │ ├── gsignal.h
│ │ ├── gsourceclosure.h
│ │ ├── gtype.h
│ │ ├── gtypemodule.h
│ │ ├── gtypeplugin.h
│ │ ├── gvaluearray.h
│ │ ├── gvaluecollector.h
│ │ ├── gvalue.h
│ │ └── gvaluetypes.h
│ ├── hci.h
│ ├── hci_lib.h
│ ├── hidp.h
│ ├── ical.h
│ ├── l2cap.h
│ ├── libffi-3.2.1
│ │ └── include
│ │ ├── ffi.h
│ │ └── ffitarget.h
│ ├── libical
│ │ ├── icalarray.h
│ │ ├── icalattach.h
│ │ ├── icalcalendar.h
│ │ ├── icalclassify.h
│ │ ├── icalcluster.h
│ │ ├── icalcomponent.h
│ │ ├── icalderivedparameter.h
│ │ ├── icalderivedproperty.h
│ │ ├── icalderivedvalue.h
│ │ ├── icaldirset.h
│ │ ├── icaldirsetimpl.h
│ │ ├── icalduration.h
│ │ ├── icalenums.h
│ │ ├── icalerror.h
│ │ ├── icalfileset.h
│ │ ├── icalfilesetimpl.h
│ │ ├── icalgauge.h
│ │ ├── icalgaugeimpl.h
│ │ ├── ical.h
│ │ ├── icallangbind.h
│ │ ├── icalmemory.h
│ │ ├── icalmessage.h
│ │ ├── icalmime.h
│ │ ├── icalparameter.h
│ │ ├── icalparser.h
│ │ ├── icalperiod.h
│ │ ├── icalproperty.h
│ │ ├── icalrecur.h
│ │ ├── icalrestriction.h
│ │ ├── icalset.h
│ │ ├── icalspanlist.h
│ │ ├── icalss.h
│ │ ├── icalssyacc.h
│ │ ├── icaltime.h
│ │ ├── icaltimezone.h
│ │ ├── icaltypes.h
│ │ ├── icaltz-util.h
│ │ ├── icalvalue.h
│ │ ├── icalvcal.h
│ │ ├── port.h
│ │ ├── pvl.h
│ │ ├── sspm.h
│ │ ├── vcaltmp.h
│ │ ├── vcc.h
│ │ └── vobject.h
│ ├── mgmt.h
│ ├── ncurses
│ │ ├── cursesapp.h
│ │ ├── cursesf.h
│ │ ├── curses.h
│ │ ├── cursesm.h
│ │ ├── cursesp.h
│ │ ├── cursesw.h
│ │ ├── cursslk.h
│ │ ├── eti.h
│ │ ├── etip.h
│ │ ├── form.h
│ │ ├── menu.h
│ │ ├── nc_tparm.h
│ │ ├── ncurses_dll.h
│ │ ├── ncurses.h
│ │ ├── panel.h
│ │ ├── termcap.h
│ │ ├── term_entry.h
│ │ ├── term.h
│ │ ├── tic.h
│ │ └── unctrl.h
│ ├── pcre.h
│ ├── pcreposix.h
│ ├── readline
│ │ ├── chardefs.h
│ │ ├── history.h
│ │ ├── keymaps.h
│ │ ├── readline.h
│ │ ├── rlconf.h
│ │ ├── rlstdc.h
│ │ ├── rltypedefs.h
│ │ └── tilde.h
│ ├── rfcomm.h
│ ├── sco.h
│ ├── sdp.h
│ ├── sdp_lib.h
│ ├── uuid.h
│ ├── zconf.h
│ └── zlib.h
├── lib
│ ├── a2mp.h
│ ├── amp.h
│ ├── bluetooth.c
│ ├── bluetooth.h
│ ├── bnep.h
│ ├── cmtp.h
│ ├── hci.c
│ ├── hci.h
│ ├── hci_lib.h
│ ├── hidp.h
│ ├── l2cap.h
│ ├── libuu.a
│ ├── Makefile
│ ├── mgmt.h
│ ├── rfcomm.h
│ ├── sco.h
│ ├── sdp.c
│ ├── sdp.h
│ ├── sdp_lib.h
│ ├── uuid.c
│ └── uuid.h
├── libb
│ ├── libbluetooth.a
│ ├── libbluetooth.la
│ ├── libbluetooth.so
│ ├── libbluetooth.so.3
│ ├── libbluetooth.so.3.18.16
│ ├── libdbus-1.a
│ ├── libdbus-1.la
│ ├── libdbus-1.so
│ ├── libdbus-1.so.3
│ ├── libdbus-1.so.3.14.3
│ ├── libdbus-1.so.3.24.0
│ ├── libexpat.a
│ ├── libexpat.la
│ ├── libexpat.so
│ ├── libexpat.so.1
│ ├── libexpat.so.1.6.0
│ ├── libexpat.so.1.6.8
│ ├── libffi.a
│ ├── libffi.la
│ ├── libffi.so
│ ├── libffi.so.6
│ ├── libffi.so.6.0.4
│ ├── libform.a
│ ├── libform_g.a
│ ├── libform.so
│ ├── libform.so.6
│ ├── libform.so.6.0
│ ├── libgio-2.0.la
│ ├── libgio-2.0.so
│ ├── libgio-2.0.so.0
│ ├── libgio-2.0.so.0.2600.1
│ ├── libgio-2.0.so.0.3000.2
│ ├── libgio-2.0.so.0.4200.2
│ ├── libglib-2.0.la
│ ├── libglib-2.0.so
│ ├── libglib-2.0.so.0
│ ├── libglib-2.0.so.0.2600.1
│ ├── libglib-2.0.so.0.3000.2
│ ├── libglib-2.0.so.0.4200.2
│ ├── libgmodule-2.0.la
│ ├── libgmodule-2.0.so
│ ├── libgmodule-2.0.so.0
│ ├── libgmodule-2.0.so.0.2600.1
│ ├── libgmodule-2.0.so.0.3000.2
│ ├── libgmodule-2.0.so.0.4200.2
│ ├── libgobject-2.0.la
│ ├── libgobject-2.0.so
│ ├── libgobject-2.0.so.0
│ ├── libgobject-2.0.so.0.2600.1
│ ├── libgobject-2.0.so.0.3000.2
│ ├── libgobject-2.0.so.0.4200.2
│ ├── libgthread-2.0.la
│ ├── libgthread-2.0.so
│ ├── libgthread-2.0.so.0
│ ├── libgthread-2.0.so.0.2600.1
│ ├── libgthread-2.0.so.0.3000.2
│ ├── libgthread-2.0.so.0.4200.2
│ ├── libhistory.a
│ ├── libhistory.old
│ ├── libhistory.so
│ ├── libhistory.so.5
│ ├── libhistory.so.5.2
│ ├── libhistory.so.5.2.old
│ ├── libical.a
│ ├── libical.la
│ ├── libical.so
│ ├── libical.so.0
│ ├── libical.so.0.48.0
│ ├── libicalss.a
│ ├── libicalss.la
│ ├── libicalss.so
│ ├── libicalss.so.0
│ ├── libicalss.so.0.48.0
│ ├── libicalvcal.a
│ ├── libicalvcal.la
│ ├── libicalvcal.so
│ ├── libicalvcal.so.0
│ ├── libicalvcal.so.0.48.0
│ ├── libmenu.a
│ ├── libmenu_g.a
│ ├── libmenu.so
│ ├── libmenu.so.6
│ ├── libmenu.so.6.0
│ ├── libncurses++.a
│ ├── libncurses.a
│ ├── libncurses++_g.a
│ ├── libncurses_g.a
│ ├── libncurses.so
│ ├── libncurses.so.6
│ ├── libncurses.so.6.0
│ ├── libpanel.a
│ ├── libpanel_g.a
│ ├── libpanel.so
│ ├── libpanel.so.6
│ ├── libpanel.so.6.0
│ ├── libpcre32.a
│ ├── libpcre32.la
│ ├── libpcre32.so
│ ├── libpcre32.so.0
│ ├── libpcre32.so.0.0.8
│ ├── libreadline.a
│ ├── libreadline.old
│ ├── libreadline.so
│ ├── libreadline.so.5
│ ├── libreadline.so.5.2
│ ├── libreadline.so.5.2.old
│ ├── libshared-glib.a
│ ├── libshared-mainloop.a
│ ├── libz.a
│ ├── libz.so
│ ├── libz.so.1
│ ├── libz.so.1.2.11
│ └── terminfo
├── Makefile
├── monitor
│ └── bt.h
├── profiles
│ └── input
│ └── uhid_copy.h
├── readme.txt
└── src
├── eir.h
├── log.c
├── log.h
└── shared
├── ad.c
├── ad.h
├── att.c
├── att.h
├── att-types.h
├── btsnoop.c
├── btsnoop.h
├── crypto.c
├── crypto.h
├── ecc.c
├── ecc.h
├── gap.c
├── gap.h
├── gatt-client.c
├── gatt-client.h
├── gatt-db.c
├── gatt-db.h
├── gatt-helpers.c
├── gatt-helpers.h
├── gatt-server.c
├── gatt-server.h
├── hci.c
├── hci-crypto.c
├── hci-crypto.h
├── hci.h
├── hfp.c
├── hfp.h
├── io-glib.c
├── io.h
├── libaat.a
├── mainloop.c
├── mainloop.h
├── Makefile
├── mgmt.c
├── mgmt.h
├── pcap.c
├── pcap.h
├── queue.c
├── queue.h
├── ringbuf.c
├── ringbuf.h
├── shell.h
├── tester.h
├── timeout.h
├── timeout-mainloop.c
├── tty.h
├── uhid.c
├── uhid.h
├── util.c
└── util.h
25 directories, 579 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论