其实今天在 linux 下面搞定蓝牙耳机并不是很难的事情。只不过因为这个问题在历史上曾经比较棘手,网上充斥了大量相对陈旧的、复杂的安装指南,导致人们一直感觉这样时尚的东西,可能 linux 支持起来很复杂。而实际上可能并不是这样。

linux 上的蓝牙部分,是 bluez 的项目来实现的。因此,只要紧盯 bluez 的官方网站,就可以获得最新、最权威的指导。比如搞定蓝牙耳机,基本上就只要参考官方 wiki 的这篇文章就可以搞定。如果更偷懒一些,这篇 blog 里的脚本也是 “拆箱即用”,方便的很。

相比之下,archlinux wiki 上的文章就相对陈旧。这里不得不佩服 gentoo,文档方面真是一流,从过去到现在,虽然写在一起有点杂乱,但是信息量很足。

最后奉上一点拙作,这是和之前那篇 blog 功能一样的一段脚本,不过不依赖 python,只要有 bash 就行(blogspot 的引用段落会打乱排版,如果自己加了

 标签,又有可能造成某些长行看不见,所以暂时就贴成这样了,还请见谅)。

#!/bin/bash

if [ $1 ]; then

ACTION=$1

else

ACTION="off"

fi

MAC="00:11:22:33:44:55" # your bluetooth device's mac

if [ "$ACTION" == "music" ]; then

echo Connect bluetooth headset in stereo mode

# active service

TMP=`dbus-send --system --print-reply --dest=org.bluez /org/bluez org.bluez.Manager.ActivateService string:audio`

DEST=`expr match "$TMP" '.*\(\".*\"\)'`

DEST=${DEST#\"}

DEST=${DEST%\"}

# create device

TMP=`dbus-send --system --type=method_call --print-reply --dest=$DEST /org/bluez/audio org.bluez.audio.Manager.CreateDevice string:$MAC`

DEV_PATH=`expr match "$TMP" '.*\(\".*\"\)'`

DEV_PATH=${DEV_PATH#\"}

DEV_PATH=${DEV_PATH%\"}

# connect

dbus-send --system --type=method_call --print-reply --dest=$DEST $DEV_PATH org.bluez.audio.Sink.Connect

# for gstreamer

gconftool-2 --type string --set /system/gstreamer/0.10/default/musicaudiosink "alsasink device=bluetooth"

echo done.

elif [ "$ACTION" == "voice" ]; then

echo Connect bluetooth headset in voice mode

# active service

TMP=`dbus-send --system --print-reply --dest=org.bluez /org/bluez org.bluez.Manager.ActivateService string:audio`

DEST=`expr match "$TMP" '.*\(\".*\"\)'`

DEST=${DEST#\"}

DEST=${DEST%\"}

# create device

TMP=`dbus-send --system --type=method_call --print-reply --dest=$DEST /org/bluez/audio org.bluez.audio.Manager.CreateHeadset string:$MAC`

DEV_PATH=`expr match "$TMP" '.*\(\".*\"\)'`

DEV_PATH=${DEV_PATH#\"}

DEV_PATH=${DEV_PATH%\"}

# connect

dbus-send --system --type=method_call --print-reply --dest=$DEST $DEV_PATH org.bluez.audio.Headset.Connect

# play

dbus-send --system --type=method_call --print-reply --dest=$DEST $DEV_PATH org.bluez.audio.Headset.Play

echo done.

elif [ "$ACTION" == "off" ]; then

echo Turn bluetooth headset off

gconftool-2 --type string --set /system/gstreamer/0.10/default/musicaudiosink "autoaudiosink"

else

echo Usage: $0 music/voice/off

echo default action is off

fi

p.s. 作为脚本来讲,python 真的很方便,用 bash 写起来要费力的多。那个去掉引号的部分,折腾了我两个小时。

最后,我的蓝牙耳机上的 mic 还没搞定(也就是说,上述 voice 部分不保证有效),如有高人路过恳请赐教,谢谢!

Linux蓝牙耳机软件,linux 下搞定蓝牙耳机相关推荐

  1. 压缩pdf,pdf压缩软件一分钟搞定

    Pdf文件是我们办公中经常会用到的文件之一,选择这个文件的原因大都是文件的安全性比较高,主要还是在于文件一旦保存之后,很难在进行修改,那么如果文件太大,传输不方便该怎么办?其实很简单的,压缩pdf,把 ...

  2. vista下搞定无法删除的0k文件

    昨天,我一同事借我的U盘一用,用来拷贝郭德刚大量相声回家,由于很大量,超过5G,所以只有我这个8G的U盘能够满足需求,经理的U盘...... 今天早上她说有一个文件删除不了了,是其中一个影音文件,rm ...

  3. 如何学好 Linux、C++,并搞定 BAT 面试 作者/分享人:天千

    学好Linux运维需要做到以下几点 1.多做实验 实验环境完全可以通过VMware来模拟,模拟私有网络,模拟多台机器,要搞懂VMware提供的集中网络模式的工作原理(桥接网络.宿主机网络.NAT等), ...

  4. linux nat软件,linux下nat的应用(转)

    linux下nat的应用(转) 随着Linux的应用普及,Linux在网络方面的强大逐步为大家所认识,越来越多的单位选择使用Linux来作为服务器的操作系统.今天笔者想就Linux在校园网NAT方面的 ...

  5. linux 图像处理软件,linux下的图像处理软件

    由于学习和工作需要,已经基本告别windows.我呢,平时爱好摄摄影,免不了会经常的遇到图片处理,ps和光影魔术手,我比较喜欢,也比较习惯.不过这两者都是跑在win下的软件,当然,ubuntu下也可以 ...

  6. 写linux代码软件,Linux下写代码神器,完爆notepad++

    SciTE是一款很好用的编辑器,支持众多的脚本,比如C.C++.PHP.C#.perl.html.css.java等等.免费而且开源.支持linux和win32环境.在windows下面只需要将下载的 ...

  7. linux qos 软件,linux下QOS:应用篇 - 博客 - 伯乐在线

    原文出处: linuxDOS   欢迎分享原创到伯乐头条 上一篇我们讲了QOS的理论知识,了解了它是做什么用的,以及设计模式,下面就以tc的应用的更深入的理解qos. Linux采用了基于对象的实现方 ...

  8. linux qos 软件,linux下QOS:应用篇

    Linux采用了基于对象的实现方法,qos还能保证对不同接口采用不同的策略,TC QOS有很多拥塞控制的机制默认的是FIFo还有其他PQ.CQ.WFQ等. 策略类 用结构体:Qdisc_ops表示.每 ...

  9. linux拨号软件,Linux 下的宽带ADSL拨号软件“rp-pppoe”使用设置

    RH要先设置网卡#netconf 把IP和DNS设置成如下的. IP地址:192.168.0.1 掩码: 255.255.255.0 DNS (下面以广东佛山为例,各地的ISP 均有不同的DNS ) ...

最新文章

  1. 更换主版之后远程管理卡恢复操作
  2. Windows7 WIN 7 64位 环境编译6sv2.1版本的大气传输模型
  3. twitter storm学习 - 安装部署问题汇总
  4. VTK:Utilities之LUTUtilities
  5. [转]Android中dp,px,sp概念梳理以及如何做到屏幕适配
  6. C++实现Base64编解码并应用于图片传输
  7. HTTP协议具体解释
  8. java什么是类和对象,Java类和对象的概念
  9. 在python中字典和集合都是用一对什么作为界定符_Python习题(一)
  10. 递归函数非递归化_递归神秘化
  11. 【万里征程——Windows App开发】数据绑定——简单示例、更改通知、数据转换...
  12. 图解cgroup架构中cgroup与css之间的多对多的关系
  13. 【JAVA复习系列】第一部分
  14. 201809-4 再卖菜 ccf
  15. 【哈利波特】Sherbert Lemon对HP的解读之14
  16. 教你如何提高信用额度
  17. springboot学校快递站点管理系统的设计与实现毕业设计源码111544
  18. metis 多线程图划分论文笔记
  19. 索骥馆-编程语言之《算法引论-一种创造性方法》扫描版[PDF]
  20. 如何在基于python的聊天室中实现表情接收功能

热门文章

  1. Win10上安装Oracle VM Virtual Box虚拟软件
  2. linux 模拟打电话,Ubuntu+Python+UIAutomator写Android自动化测试脚本-模拟拨打电话
  3. VGGNet详细笔记
  4. 教你在多个视频中随机抽帧画面出来,置入到各个视频封面上
  5. 2022SEO关键发包快速排名系统源码
  6. Linux删除目录非空的文件夹命令
  7. Java内存模型 gc算法_JVM内存模型及GC回收算法
  8. phpstudy中mysql无法启动
  9. javascript数组去重的10种方法
  10. JavaScript 去重方法归纳