【用PS3手柄在安卓设备上玩游戏系列】连接手柄和设备
背景
在索尼公司的 PS3 游戏机里面,游戏手柄是通过蓝牙协议与游戏主机进行无线通信的,一个名为 Dancing Pixel 的开发商开发了一款名为 Sixaxis Controller 的安卓应用,实现了 PS3 手柄和安卓设备(安卓手机或者平板)的蓝牙连接,现在我们有机会直接使用 PS3 手柄在安卓设备上面玩游戏了。
硬件要求1:PS3 手柄 + 手柄配套的USB线
以下简称“手柄”和“USB线”,如下图所示:
硬件要求2:已经获得 ROOT 权限并且支持蓝牙的安卓设备
以下简称“设备”。实践证明,原装手柄肯定是可以连接设备的,而组装手柄则有的可以有的不可以,有意入手组装手柄的同学注意事先跟卖家确认清楚。至于设备的类型则没有限制,手机平板皆可。
经过本人实测,小米2和三星Galaxy Note 10.1都是支持与PS3手柄连接的。
软件要求1:Sixaxis Compatibility Checker
以下简称 SCC。俗话说“不是所有特仑苏都是牛奶”,同样道理,不是所有设备都能和手柄连接,于是就有了这款用来检测设备是否支持手柄的应用,小伙伴们赶紧先检测一下自己的设备是否支持这一令人兴奋功能吧。
Step1:SCC 在谷歌官方的 Play 商店上就有得下载:
Step2:安装完毕之后,先打开设备的蓝牙,然后在 SCC 里面点“Start”启动设备检测:
Step3:静待片刻,检测通过的设备会看到以下的提示语:Your device appears to be supported……此处省略好些字。
SCC 里面的“Pair Controller”是给支持 OTG 的设备用的,在本文的下一节中会加以说明。
对于未能通过检测的设备,本文接下来的内容可能就暂时与你无关了。不过话说回来,设备未能通过检测又分为硬件原因和软件(系统)原因,前者是由于设备硬件本身就不支持,我们暂时是无能为力的,而后者则是可以通过刷机或者升级系统解决,比如我手上的小米2在2013年中做过一次系统升级之后,每次启动 SCC 检测都会提示 Permission denied,后来经过确认是由于此版本的 MIUI,在授权管理模块有 Bug,会导致所有应用都无法获获得 ROOT 权限,需要等到下一次系统更新时来修复,果然再次进行系统更新之后,问题解决,整个世界又清静了。所以建议各位未能通过检测的小伙伴们,可以通过互联网,搜索一下同款设备有没有连接成功的案例,进一步寻求解决的方法。
PS3 手柄和设备连接配对的原理分析
蓝牙设备通信的时候,是根据对方(目标设备)的蓝牙地址来进行定位的。这就是传说中的“你知道我的长短,我也知道你的深浅”,这一点 PS3 手柄也不例外。但一般的蓝牙设备都具有“被发现”的特性,以蓝牙音箱为例,就是打开音箱以后,其他设备可以通过搜索来定位到蓝牙音箱,然后进行连接。但 PS3 手柄却不支持这种特性,实际上 PS3 手柄第一次和 PS3 主机配对的时候,也是需要用 USB 线才能完成的。大致的流程我推测是这样:
流程中的“(4)刷新手柄芯片上的目标设备地址”是最关键的,要实现手柄和设备的连接配对,就要想办法把设备的蓝牙地址保存到手柄芯片上。
对于支持 OTG 的设备(比如小米2),只要用 OTG 线和 USB 线把手柄和设备连接好,再点一下 SCC 里面的“Pair Controller”,就能搞定。设备不支持 OTG,或者手上没有 OTG 线的小伙伴们也不用担心,用 USB 线连接手柄和电脑,通过下一节介绍的这个软件一样能搞定。
软件要求2:Sixaxis Pair Tool
以下简称“SPT”。SPT 是一个电脑上的软件,手柄第一次和设备配对的时候,可以用 SPT 把设备的蓝牙地址保存到手柄的芯片上。具体步骤如下:
Step1:在电脑上下载和安装“SixaxisPairToolSetup”,百度一下,你就知道,SPT 运行之后是这个样子的:
Step2:用 USB 线连接手柄和电脑,待驱动安装完毕,SPT 识别出手柄之后,能够在 Current Master 后面看到当前手柄芯片上的目标设备地址。原来的目标设备地址是多少我们不需要关心,在 Change Master 后面填好我们要连接的设备的蓝牙地址,点“Update ”。查看设备蓝牙地址的方法多了去了,这里不一一列举,在上文提到的 SCC 里面也能看到:
Step3:稍等片刻,如果 Current Master 后面的地址变成了我们在 Change Master 填写的那个,说明手柄芯片上的目标设备地址已被更改,接下来就可以拔掉 USB 线,开始进行手柄和设备的蓝牙连接了。
前文提到的某些山寨手柄无法连接设备,问题就出在这里,无法通过以上的手段更改手柄芯片上的目标设备地址,我手上就有这么一个奇葩的组装手柄。但这并不意味着我就完全没有办法用这样的手柄在设备上面玩游戏了,这事还是要看人品的,我发现用 OTG 线和 USB 线连接手柄和小米2,能够把 PS3 手柄当有线手柄用。
软件要求3:Sixaxis Controller
以下简称 SC。如果说前面讲的内容都是前戏,那这一节的内容绝对就是高潮了。SC 才是实现手柄和设备连接的关键,SC 在运行的时候需要 ROOT 权限,它之前在谷歌官方的 Play 商店上是一个收费应用,但最近好像被下架了,反正我是搜索不到了。还好我大中华局域网下面的安卓应用市场多了去了,想找一个 SC 的应用安装包,百度一下,你就知道。
安装完毕之后,我们开始使用 SC 来连接手柄和设备,操作步骤如下:
Step1:如果设备上已经运行了 SCC,先将其关闭,然后再运行 SC。SC 的界面和前面提到的 SCC 非常相像,一看就知道是同一个妈生的。
Step2:确认设备的蓝牙已经打开,在 SC 里面点“Start”,直到界面上输出“Listening for controllers…”,这时设备已经准备好了:
如果遇到 SCC 检测通过,而 SC 无法 Start,可以重启一下设备,再重新运行 SC。
Step3:拿起手柄,按下手柄中间的 PS 键,可以看到手柄上的四个小红灯开始闪烁,这表示手柄根据芯片上的目标设备地址正在尝试和设备进行连接。
Step4:配对完成之后,手柄红灯停止闪烁,第一个小红灯保持常亮,在 SC 界面上可以看到输出“Client 1 connected [Battery status: Full]”,这时手柄和设备已经配对成功了。
如果配对失败,请用 SPT 重新检查确认手柄芯片上的目标设备地址是否填写正确。
Step5:在 SC 里面点“Change IME”,修改设备使用的输入法,选择“Sixaxis Controller”:
Step6:按手柄的方向键,应该可以在 SC 的界面上看到焦点切换的效果。
Step7:不用手柄的时候,需要回到 SC 界面点“Stop”,否则设备的蓝牙和输入法都可能无法使用。
Step8:按照以下步骤可以进一步设置 SC 在 Stop 之后自动切换回哪个输入法:1.扩展菜单按钮 >2.Preferences > 3.Keyboard Emulation > 4.Default Input Method > 5.选择输入法
到此,手柄与设备的连接部分已经全部介绍完毕。真正使用手柄玩游戏的时候,还需要根据游戏来设置手柄按键的映射,更多内容可以参考【用PS3手柄在安卓设备上玩游戏系列】的其他文章。
最后提一点,SC 是有汉化版本的,目前我在百度上能找到的最新版本是 v0.7.4,从扩展菜单按钮进帮助,会有惊喜哦。
系列文章索引:http://www.cnblogs.com/duxiuxing/p/4790390.html
【用PS3手柄在安卓设备上玩游戏系列】连接手柄和设备的更多相关文章
- 【用PS3手柄在安卓设备上玩游戏系列】FC(任天堂NES/FC主机)模拟器
NESoid 是安卓系统下公认最好的FC模拟器.据我所知,现在安卓系统下面的绝大部分的FC模拟器,都是基于 NESoid 的内核来开发的. 官方网站:http://www.nesoid.com NES ...
- 【用PS3手柄在安卓设备上玩游戏系列】谈安卓游戏对手柄的支持
不同的游戏对于手柄的支持程度是不一样的,对应所需要进行的手柄设置也不尽相同.我没有这样的时间和精力,针对每一款游戏去写博客,但找出不同游戏中的共同点,针对同一类的游戏去写博客,应该是可行的.我把安卓上 ...
- 【索引】用PS3手柄在安卓设备上玩游戏系列
谈安卓游戏对手柄的支持:http://www.cnblogs.com/duxiuxing/p/3729802.html 连接手柄和设备:http://www.cnblogs.com/duxiuxing ...
- 在通知栏上玩游戏,Steve iOS 游戏实现思路
最近有一款游戏特别的火爆,叫做Steve ,一种可以在通知中心直接玩的游戏.作者的脑洞也是非常的大,实在让人佩服.其实实现起来也简单,就是用到了iOS8新特性 app extension(Today ...
- [转]如何:在设备上安装 SQL Server Compact 3.5
将设备连接到计算机,或者将仿真程序插入底座. 有关更多信息,请参见如何:将设备仿真程序插入底座和移除底座. 说明: 计算机上必须已安装了 Windows Mobile Device Center 或 ...
- 【Abode Air程序开发】在设备上进行安装
在设备上进行安装 在 Google Android 设备上安装应用程序 在 Apple iOS 设备上安装应用程序 在 Google Android 设备上安装应用程序 在项目的开发.测试和部署阶段, ...
- 在设备上启用 adb 调试,有一个小秘密
要在通过 USB 连接的设备上使用 adb,您必须在设备的系统设置中启用 USB 调试(位于开发者选项下). 在搭载 Android 4.2 及更高版本的设备上,“开发者选项”屏幕默认情况下处于隐藏状 ...
- Linux 上的游戏 Supertuxkart
Linux 上玩游戏 Supertuxkart 中午休息的时候,打开Supertuxkart游戏,这个是GNU下的一款3D赛车游戏,制作精美,玩法简单.最有趣的是,我连接笔记本的外接键盘被侦测出来是M ...
- [转] 在安卓设备上使用 Chrome 远程调试功能
你的网页内容在移动设备上的体验可能和电脑上完全不同.Chrome DevTools 提供了远程调试功能,这让你可以在安卓设备上实时调试开发的内容. 安卓远程调试支持: 在浏览器选项卡中调试网站. 在原 ...
随机推荐
- const常量折叠
首先来看一个例子: int main(int argc, char* argv[]) { ; int *j = (int *) &i; *j=; cout<<&i<& ...
- CSS 让标点符号不出现在行首
word-break:break-all; 这条语句的作用是让语句到达边界的时候自动换行,但是正是这个样式让标点符号跑到了行首. 语法: word-break : normal | break-all ...
- jsp中的c标签
核心标签库 引用: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> ...
- 开发solr功能问题点
Criteria criteria = new Criteria(); public Criteria and(Criteria criteria) { this.criteriaChain.add( ...
- 加速器eaccelerator不兼容高版本php
话说PHP官方发布PHP5.4已经有一阵了,根据使用的情况来看,似乎还是很不错的.从初始发布到现在升级到的PHP5.4.4,修正不少的Bug.PHP5.4新的版本,除了提供了更多新的特性,还有大幅的效 ...
- Swift - 02 - 常量和变量
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
- [个人原创]关于java中对象排序的一些探讨(三)
这篇文章由十八子将原创,转载请注明,并标明博客地址:http://www.cnblogs.com/shibazijiang/ 对对象排序也可以使用Guava中的Ordering类. 构造Orderin ...
- 4.HTTP入门
什么是http协议查看http协议的工具http协议内容Http请求请求行http协议版本请求资源请求方式GET方式提交POST方式提交请求头3.3 实体内容3.4 HttpServletReques ...
- jquery 插件大全
1.jquery.roundabout.js 超棒的左右3D旋转式幻灯片jQuery插件 2.jquery validate.js 验证表单 3.jquery ui插件 对话框 日期 4.lhgdia ...
- MongoDB-性能优化之索引
首先看一个实例 >;i<;i++){ db.indexdemo.insert({),"create":new Date});} WriteResult({ }) > ...