萬一你用左 D 會被清走既舊野, 就要準備改 code 了.
Google 既做法, 係會先提醒你某 D 野就快死我, 今次比你過, 下次就唔包了.
如果唔想出事至急急腳搵解藥, 可以叫佢每次都 check 埋有邊 D 野就快死.
好簡單, 只要在 build.gradle 加入下面幾行就得了.
為左唔想影響咁大, 改 Module:app 自己既 build.gradle 好了, 將呢幾句加落最尾就得,
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:deprecation"}
之後再 build APK, 就會出唔到了, 講埋邊度唔得, 原來係 SmsMessage.createFromPdu 出事:E:\SourceTree\WhereAreYou\app\src\main\java\org\super169\findlocation\FindLocationActivity.java:189: warning: [deprecation] createFromPdu(byte[]) in SmsMessage has been deprecated SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]);又要上網搵笨法解決了. (1) 最簡單既方法, 咪跟佢既 syntax 比埋個 format 佢就得 (API Level 23) String format = extras.getString("format"); SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i], format);世事總係無咁好既, 呢個 syntax 係 API Level 23 開始至用得, 即係要改 minSdkVersion 去到 23 或以上, 即係 Android 6.0 Marshmallow 之後既機至用到, 太過份了. (2) 用 Telephony 先攞哂 d msg 再慢慢睇 (API Level 19)SmsMessage[] msgs = msgs = android.provider.Telephony.Sms.Intents.getMessagesFromIntent(intent); for (int i = 0; i < pdus.length; i++) { SmsMessage message = msgs[i];今次好 D, API Level 19 就有了 (即係 Android 4.4 KitKat 開始). 所以, 針對 SmsMessage.createFromPdu 可以有以下幾個方案:
- 唔鬼理佢, 反正家陣仲用得, 可以 keep 住 midSdkVersion 18
- 轉用 Telephony 去讀 message, 而 midSdkVersion 只係升上 19, 影響唔算大
- 用 SmsMessage.createFromPdu 既新 Syntax, 但 midSdkVersion 就要上 23 至得
No comments:
Post a Comment