Tuesday, January 3, 2017

出事篇: targetSdkVersion - 23 or above

之前手痕, 見定陣兩部電話, 一部 Android 6.0 另一部 Android 7.1, 心諗主力用既機都升左上 6.0 以上, 只係得番 D tablet 同阿仔部松用舊版, 就將 Sdk version 提升一下.

minSdkVersion: 19

呢個 minSdkVersion 因為 createFromPdu 既緣故已經升左上 19 (詳情可以睇番 Deprecated methods).

既然個名叫 min...就更係有細得細, 而最少要 19, 咪 keep 住 19 先.


targetSdkVersion: 22

呢個其實我都唔係太明白, 基本上講明 minSdkVersion 係 19, 即係 19 或以上都要 work, 咁仲加個 target 有乜用?  睇番網上講, target 最好 set 到你認為行到個 app 最大既 version, 等佢可以同你 check 下有無新野係唔夾既.  聽落幾理想, 我個人保守少少, 就試改成 23 (跟我手上部電話先).

改完用番部 tablet 試, 因為佢係最低版本 (仲係 食緊 KitKat), 諗住佢得就實得.
試好哂, 諗住掂了.

點知幾日後, 幫人裝 app, 發覺出事, 唔識攞 permission.  初時都唔知乜事, 不斷 fallback, 發覺係轉 SdkVersion 呢下出事.
好在, 呢個改動既同時, 無改 program, 咁好明顯就係呢度問題.  如果唔係, 真係有排 debug.

又再上網搵下, 原來 Android 自 API Level 23 開始, 改左 permission 既做法.
以前一裝 app, 你就要同佢講, 接唔接受個 app 要既 permission, 一係就比哂, 一係就唔裝.
自 API Level 23 (Android 6.0) 開始, 用家既自由度大左 (不過又煩左), 裝 app 唔問, 開 app 都唔問 (其實睇 programmer 點寫), 盡量做到有需要至問.

咁就出事喇, 我本身無加入中途問人攞 permission 既 code (鬼咩, 之前都無呢樣野), 而佢又改左裝 app 果下唔問, 結果就完全唔問, 即係無 permission 了.  點解之前又試唔出?  皆因自己用左部 Android 4.4 既機試, 而 Android 4.4 既機係裝果下就要攞 permission, 所以一開始就有哂了.

本來加番 require permission 既 code 就得, 但有時真係唔 sure 邊度有漏 (analyser 可以同你 check), 安全起見, 改番 裝果下問左先, 反正自己既 app,  自己點會唔信喎.

結果, targetSdkVersion 就變番去 22 了.

No comments:

Post a Comment