几天以来,我一直在尝试使用以前的Android API在使用较新API构建的应用中实现方法的方法。
具体来说,我正在使用startBluetoothSco()
通过蓝牙SCO频道发起虚拟呼叫。在API 17中,这非常有效,但是,在API 18之后startBluetoothSco()
打开原始SCO通道而不是虚拟调用(如开发人员文档中所述:http://developer.android.com/reference/android/media/AudioManager.html#startBluetoothSco())。我正在使用的配件对原始SCO通道没有任何作用。
在这种情况下,我不能选择使用API 17构建应用程序,因为其他开发人员可能会在不久的将来需要更高版本的API。
我确实认为我可以将蓝牙代码包装在库项目中,使用API 17构建它,然后将其集成到主应用程序中,然后在API 18中构建。不幸的是,这并没有。工作;看来操作系统看到startBluetoothSco()
是从使用API 18构建的应用程序调用的事实,因此使用该方法的API 18实现。
如果有人可以通过任何方式建议我强制API 18应用程序使用API 17实现,我将非常感激。
由于
答案 0 :(得分:0)
在这种情况下,我不能选择使用API 17构建应用程序,因为其他开发人员可能会在不久的将来需要更高版本的API。
你建造的东西并不重要。你在上运行的是重要的。如果您这样说,从API级别18开始,startBluetoothSco()
不适用于您的硬件,则Android 4.3+设备将无法与您的硬件配合使用。
不幸的是,这不起作用;看来操作系统看到startBluetoothSco()是从使用API 18构建的应用程序调用的,因此使用该方法的API 18实现。
它使用“方法的API 18实现”,因为如果它是Android 4.3设备,它就是它的全部。
如果有人可以通过任何方式建议我强制API 18应用程序使用API 17实现,我将非常感激。
在设备上安装基于Android 4.2的ROM mod。