强制Android应用程序将旧API用于一段代码

时间:2014-07-24 15:30:08

标签: android bluetooth hfp

几天以来,我一直在尝试使用以前的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实现,我将非常感激。

由于

1 个答案:

答案 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。