
android.telephony.gsm.SmsMessage(不推荐使用1.6及以上版本)
androID.telephony.SmsMessage(1.6及以上的新类)
我想目标1.5,然后让更新的类(androID.telephony.SmsMessage)在1.6或更高的设备上运行.我该怎么做呢?
我已经厌倦了这个:http://devtcg.blogspot.com/2009/12/gracefully-supporting-multiple-android.html但我无法让它工作(作者没有提到他/她如何处理不同的进口,确切的API级别设置等)
谢谢.
import java.util.Date;import com.apps.myapp.UtilitIEs;import androID.content.Context;import androID.content.Intent;import androID.os.Bundle;import androID.telephony.gsm.SmsMessage;//*NOTE* depreciated in v1.6+public class OfflinesMSReceiver extends SMSReceiver{ @OverrIDe public voID onReceive(Context context,Intent intent) { System.out.println("SMS_RECEIVED"); System.out.println(UtilitIEs.getNow()); //---get the SMS message passed in--- Bundle bundle = intent.getExtras(); SmsMessage[] msgs = null; Date date; long timeStamp; String time; String str = ""; if (bundle != null) { //---retrIEve the SMS message received--- Object[] pdus = (Object[]) bundle.get("pdus"); msgs = new SmsMessage[pdus.length]; for (int i=0; i<msgs.length; i++){ msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); timeStamp = msgs[i].getTimestampMillis(); date = new Date(timeStamp); time = this.getTime(date.getHours(),date.getMinutes(),date.getSeconds()); str += "SMS from " + msgs[i].getoriginatingAddress(); str += " :"; str += msgs[i].getMessageBody().toString(); str += "\n"; str += "TIME: "+time+"\t"+this.getNowDate(); } System.out.println(str); } }}解决方法 您将需要以androID-4或更高版本为目标,否则较新的类将不存在. 关于加载正确的版本,您可以使用条件类加载,在this sample project中为联系人内容提供商的两个版本演示.此外,this article是谷歌在这个问题上所说的话.
总结以上是内存溢出为你收集整理的Android – 支持1.6,并支持1.5中不推荐使用的代码?全部内容,希望文章能够帮你解决Android – 支持1.6,并支持1.5中不推荐使用的代码?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)