网站设计 侵权,iis5.1怎么新建网站,杭州拱墅区做网站,c 网站开发平台Android系统基于libretro的全能游戏模拟器#xff0c;目前有RetroArch#xff0c;Kodi#xff0c;Lemuroid。 而且这三个都是开源免费的APP。
Lemuroid相对前面两个功能比较简陋。也不能自己下载核心。但代码也是最少的。
在使用Lemuroid的时候#xff0c;发现它不能检测…Android系统基于libretro的全能游戏模拟器目前有RetroArchKodiLemuroid。 而且这三个都是开源免费的APP。
Lemuroid相对前面两个功能比较简陋。也不能自己下载核心。但代码也是最少的。
在使用Lemuroid的时候发现它不能检测出我的蓝牙键盘也就不能用蓝牙键盘操作游戏。
经过一番研究找到了问题所在在此做一个笔记。 不知什么原因作者对android系统的输入设备做了一个过滤
源码文件在lemuroid-app\src\main\java\com\swordfish\lemuroid\app\shared\input\InputDeviceManager.kt 如下代码在获取所有输入设备时对设备列表进行了过滤删掉.filter的两行代码就好了。 private fun getAllGamePads(): ListInputDevice {return runCatching {InputDevice.getDeviceIds().map { InputDevice.getDevice(it) }.filter { it.getLemuroidInputDevice().isSupported() }.filter { it.name !in BLACKLISTED_DEVICES }.sortedBy { it.controllerNumber }}.getOrNull() ?: listOf()}如果不想自己编译可以找官方编译的APK进行反编译再修改。
针对smali的修改主要是去掉两个if-eqz的判断。 不同的版本修改位置不一样下面的smali代码仅供参考 invoke-interface {v3}, Lm4/a;-a()Zmove-result v3if-eqz v3, :cond_1 #删除此行invoke-interface {v0, v2}, Ljava/util/Collection;-add(Ljava/lang/Object;)Zgoto :goto_1.line 9:cond_2new-instance v1, Ljava/util/ArrayList;invoke-direct {v1}, Ljava/util/ArrayList;-init()V.line 10invoke-interface {v0}, Ljava/lang/Iterable;-iterator()Ljava/util/Iterator;move-result-object v0:cond_3:goto_2invoke-interface {v0}, Ljava/util/Iterator;-hasNext()Zmove-result v2if-eqz v2, :cond_4invoke-interface {v0}, Ljava/util/Iterator;-next()Ljava/lang/Object;move-result-object v2move-object v3, v2check-cast v3, Landroid/view/InputDevice;.line 11sget-object v4, Lk4/b;-f:Ljava/util/Set;invoke-virtual {v3}, Landroid/view/InputDevice;-getName()Ljava/lang/String;move-result-object v3invoke-interface {v4, v3}, Ljava/util/Set;-contains(Ljava/lang/Object;)Zmove-result v3xor-int/lit8 v3, v3, 0x1if-eqz v3, :cond_3 #删除此行invoke-interface {v1, v2}, Ljava/util/Collection;-add(Ljava/lang/Object;)Z