0

我尝试使用据我所知仅在 API 级别 4 中可用的特定方法。根据这篇文章:Android API < 8 他们去哪儿了?,所有设备至少运行符合我观察的 Android 2.1,我已将我的应用程序中的 min/max/target api 级别设置为 4 并使用 api 级别 4 来编译我的应用程序,但设备以 8 级运行它。有吗我可以通过什么方式访问仅在旧 api 上可用的方法?

非常感谢您的帮助。汤姆

4

1 回答 1

1

使用private方法总是有风险的...至于您的问题,我查看了源代码,似乎该方法很简单,您可以直接将其添加到您的代码中:

private void sendRawPdu(byte[] smsc, byte[] pdu, PendingIntent sentIntent,
        PendingIntent deliveryIntent) {
    try {
        ISms iccISms = ISms.Stub.asInterface(ServiceManager.getService("isms"));
        if (iccISms != null) {
            iccISms.sendRawPdu(smsc, pdu, sentIntent, deliveryIntent);
        }
    } catch (RemoteException ex) {
        // ignore it
    }
}

ISms.sendRawPdu()声明了public,所以我希望实现仍然存在。

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.6_r2/android/telephony/SmsManager.java#SmsManager.sendRawPdu%28byte%5B%5D%2Cbyte %5B%5D%2Candroid.app.PendingIntent%2Candroid.app.PendingIntent%29

于 2013-05-27T07:59:34.630 回答