android 开发时遇到的各种问题1--Android双模(CDMA/GSM)手机短信相关
生活随笔
收集整理的這篇文章主要介紹了
android 开发时遇到的各种问题1--Android双模(CDMA/GSM)手机短信相关
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這篇博客主要是用來記錄平時開發時遇到的各種問題,給大家一個參考,也可以跟大家一起討論討論。
Android雙模(CDMA/GSM)手機短信相關
參考博客http://blog.sina.com.cn/s/blog_68ebf0be0101awix.html
雙模手機對接收到的短信處理時總是在SmsMessage.createFromPdu的地方出現異常,異常信息:
java.lang.OutOfMemoryError: array size too largeat com.android.internal.telephony.cdma.SmsMessage.parsePdu(SmsMessage.java:658)at com.android.internal.telephony.cdma.SmsMessage.createFromPdu(SmsMessage.java:116)at android.telephony.SmsMessage.createFromPdu(SmsMessage.java:162)?
由于android系統本身不支持雙卡,如果是雙模手機,調用createFromPdu(byte[] pdu)方法時會產生錯誤,問題就在于源碼的TelephonyManager.getDefault().getPhoneType();該方法的返回值沒有對應的雙模手機的類型,而原生的android系統是不支持雙模手機的。
這里,我改為用ContentResolver 查詢手機通訊錄數據庫
?
Cursor cursor = null;try {cursor = c.getContentResolver().query(Uri.parse("content://sms/inbox"),new String[] {"_id", "address", "body"},where,null,"date desc");if(cursor!=null && cursor.moveToFirst()){address = cursor.getString(1);body = cursor.getString(2); //短信內容 }} catch (Exception e) {e.printStackTrace();} finally {if (cursor != null) {cursor.close();}}數據庫的操作,大家都很熟悉了,如果字段什么的不知道的話,直接把手機root,拿到數據庫就能看了。或者idea調試的時候也可以查看cursor的字段。
?
?
轉載于:https://www.cnblogs.com/zouzhenglu/p/3181142.html
總結
以上是生活随笔為你收集整理的android 开发时遇到的各种问题1--Android双模(CDMA/GSM)手机短信相关的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个可视化的retrospective网
- 下一篇: 组建一台计算机3_硬件3 多位运算器