線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1792
推到 Plurk!
推到 Facebook!

10.3 RIO fmx Android 問題

缺席
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2018-12-16 23:56:11 IP:118.169.xxx.xxx 未訂閱
請問各位:
版本
10.3 rio 26.03229.4364 enterprise
win10 17134 64bit Edition
VMware 環境

將我在 10.2 以前的程式換上來後, 發現兩個問題, 抓了將近十天才找到關鍵點

1. GetSharedDocumentsPath 失效, 原本我都是把 sqlite 資料庫放在這個位置相安無事, 但換上 10.3 後, 一直出問題, 查到最後, 只要我改成 GetDocumentsPath 就過關, 不知道 10.3 要使用 GetSharedDocumentsPath 要調整什麼?
(指定放在 GetSharedDocumentsPath , sqlite 寫不進去, 而放在 GetDocumentsPath 可以讀寫, 但Android 權限問題, 透過檔案管理等工具是看不到這些 sqlite 資料檔, 所以之前都會放在 GetSharedDocumentsPath 內)

2. 以下這段程式是取得手機的 IMEI碼
{$IFDEF ANDROID}
obj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);
if obj <> nil then
begin
tm := TJTelephonyManager.Wrap((obj as ILocalObject).GetObjectID);
if tm <> nil
then IMEI := JStringToString(tm.getDeviceId)
else
begin
IMEI := JStringToString(TJSettings_Secure.JavaClass.getString(
SharedActivity.getContentResolver,
TJSettings_Secure.JavaClass.ANDROID_ID));
end;
end;
{$ENDIF}

但在 10.3 RIO 上執行會出現以下錯誤, 我檢查 permissions 中, 在 Read Phone State 是 true, 不知道還有那裡要設定才能讀到?
java.lang.SceurityExecption.
getDerviceId: Neither user 10253 nor current process has android.permission.READ_PHONE_STATE
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2018-12-17 19:04:03 IP:119.137.xxx.xxx 未訂閱
是否 10.3 底下,需要 run time 动态地用代码申请权限?我猜。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2018-12-18 00:32:55 IP:118.169.xxx.xxx 未訂閱
不知道, 查google 也沒有人在討論
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2018-12-19 23:34:21 IP:118.169.xxx.xxx 未訂閱
有查到一篇討論相關的貼文, 也有附SOURCE CODE 參考, 正在研究中,
發現 Android 8 (API 26) 以後, 權限控管不只是在 permission 中設定True, False 而已, 有關一些被定義為 dangerous 的設定,
Android 不會主動出現要求授權(即便指定True), 而是我們要在適當的位置, 自己呼叫Android API 的指令, 要求Android 出現要求允許的視窗, 否則一律被設定為 deny, 研究中...有成果再分享各位
lewis50093
一般會員


發表:2
回覆:3
積分:6
註冊:2013-07-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2018-12-20 12:02:42 IP:118.163.xxx.xxx 未訂閱
這就是Delphi 10.3 的必要更新
Android Permission Model 需要動態請求權限
===================引 用 P.D. 文 章===================
有查到一篇討論相關的貼文, 也有附SOURCE CODE 參考, 正在研究中,
發現 Android 8 (API 26) 以後, 權限控管不只是在 permission 中設定True, False 而已, 有關一些被定義為 dangerous 的設定,
Android 不會主動出現要求授權(即便指定True), 而是我們要在適當的位置, 自己呼叫Android API 的指令, 要求Android 出現要求允許的視窗, 否則一律被設定為 deny, 研究中...有成果再分享各位
stacker_liew
中階會員


發表:59
回覆:168
積分:65
註冊:2004-05-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2018-12-25 12:41:36 IP:175.137.xxx.xxx 未訂閱
在CameraComponent這個範例,可以看到一些改動。
===================引 用 lewis50093 文 章=================== 這就是Delphi 10.3 的必要更新
Android Permission Model 需要動態請求權限
===================引 用 P.D. 文 章===================
有查到一篇討論相關的貼文, 也有附SOURCE CODE 參考, 正在研究中,
發現 Android 8 (API 26) 以後, 權限控管不只是在 permission 中設定True, False 而已, 有關一些被定義為 dangerous 的設定,
Android 不會主動出現要求授權(即便指定True), 而是我們要在適當的位置, 自己呼叫Android API 的指令, 要求Android 出現要求允許的視窗, 否則一律被設定為 deny, 研究中...有成果再分享各位
系統時間:2024-04-29 2:39:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!