几天来,我一直在尝试找出一种方法,在使用较新 API 构建的应用程序中使用以前的 Android 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 实现的任何方式,我将不胜感激。
谢谢