跳到主要內容

發表文章

目前顯示的是 2016的文章

透過程式碼輸出 SharedPreferences 與 SQLite

註:新版 Android Studio 的 Device File Explorer 已經可以直接開啟 InternalStorage 裡的檔案了,非常方便 ,不用再自行輸出了。 應用程式中常會使用 SharedPreferences 及 SQLite 來儲存資料,但想檢視裡頭資料時該怎麼做呢? 首先,SharedPreferences 以及 SQLite 都是以檔案方式儲存於 InternalStorage,路徑分別如下: SharedPreferences: 使用 getDefaultSharedPreferences 的位置 /data/data/your.package.name/shared_prefs/ your.package.name _preferences.xml 使用 getSharedPreferences 的位置 /data/data/ your.package.name /shared_prefs/your_prefs_name.xml SQLite : /data/data/ your.package.name /databases/your_db_name 但基本上 InternalStorage 是受保護的,想直接觀察會有點麻煩。 因此這邊提供了一個工具類( Java版 、 Kotlin版 ),可以幫您把 SharedPreferences、SQLite、Realm、Logcat 輸出到外部儲存空間方便您檢視。 輸出位置 ExternalStorage/Android/data/ your.package.name /files/ 此外,別忘了添加權限。 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

App 在 Google Play 被停權與恢復的經驗分享

最近心情真像是洗了三溫暖~ 前幾天把已經很久沒維護的  EZ App安裝器  稍微調整了 UI,修了修 Bug,提交更新。 幾個小時過去發現 Google Play 還沒反應,感覺有點怪...可能是系統忙碌吧。當下也沒想太多就跑去睡了。 隔天一早打開開發者控制台,登愣!又看到熟悉的景象... App 被停權了!!! 為什麼說"又"呢? 出來混總是要還的,被停權也不是第一次了。 多年前剛開始在 Google Play 上架時,學別人在商店描述裡加了一堆 Keyword,其實有沒有用也不知道。然後某次開發人員計劃政策調整後,這種行為被視為違規,於是一下子被停權兩隻 App。 畢竟是自己沒注意到政策調整,而且罪證確鑿,只好摸摸鼻子認了。不過明明是很簡單就能修正的問題,Google 總是完全不給機會就直接停權,手段實在狠毒!這也是最讓人難以接受的地方。 順帶一題,Google Play 的違規處分大概分為以下幾種: 拒絕 :更新版本遭拒,但之前所發佈的版本仍會保留在 Google Play 商店中。 下架 :應用程式會從 Google Play 下架。必須提交符合規範的更新版本,才能讓應用程式重新上架。 停權 :應用程式會從 Google Play 下架。必須更改 package name,才能讓應用程式重新上架。這意味著將失去原本累積的下載數、統計資料和評分,一切重頭來過。 終止開發者帳號 :所有應用皆會下架,無法再上架新應用。"相關帳戶"也會一併處分,不允許再註冊新的開發者帳號。 我三次遇到的都是停權,但這次的原因是為什麼呢? 根據信裡的說明是違反了開發人員發佈協議的"其他商店"條款。 什麼是"其他商店"條款? 4.5 其他商店。凡是「產品」具有任何推廣其他商店之用途,藉此引導使用者透過這類替代性管道發佈 Android 軟體應用程式或遊戲,則一概禁止在「商店」中發佈或提供。 奇怪?我的 App 裡面沒有推廣其他應用程式商店啊? 信中有申訴的管道,寫信去問明白吧。網頁說可以用中文 、 英文 、 日文及韓文提出申訴,就直接寫中文吧。一來比較好溝通,同時看看都是講中文的會不會比較寬大為懷 XDD~ 提出申訴後過了幾個小時,收到回覆了

整合 Google Play Billing Library 的流程

提醒,您必須擁有 Google Play 開發者帳戶並開啟 Google Payments 商家帳戶。 流程: 1. 於 build.gradle 中引入 Google Play Billing Library,程式內其他 Billing 相關的部分可暫時先不實作。 implementation 'com.android.billingclient:billing:*.*.*' 2. 將應用程式 Sign 好,上傳到 Developer Console 的任一測試階段。(需要一段時間生效) 3. 開始在 Developer Console 中建立應用程式內商品,並記得啟用。 4. 參考 範例 開始實作應用程式內購買。 5. 若有使用 ProGuard 也請記得加上 -keep class com.android.vending.billing.** 6. 於裝置上測試購買。 7. 購買成功後在 Developer Console 的訂單管理中可以看到該筆交易。(會標示為測試訂單) 8. 若有需要,可於訂單管理中進行退款(撤銷購買項目)的測試。 注意事項: 若您沒有自己的 Server 處理交易紀錄,而是靠 Play Store 來記錄的話。因為他有 Local Caching 的機制,有時不會立即反映交易狀態的改變。比如說您從訂單管理中取消了交易,但 App 透過 Google Play Billing Library 去查詢卻還是"已購買"的狀態。此時可以試著重啟裝置讓 Play Store 去同步交易狀態。 參考資料: https://developer.android.com/google/play/billing