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

如何移到sd card

答題得分者是:aftcast
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2014-11-12 11:51:50 IP:118.160.xxx.xxx 未訂閱
請問各位

xe7 android 4.3(以上) 安裝後, 想移到 external sd card 中,
通常我們會利用 android 中的應用程式, 選擇 "移動", 大多數的 app 都可以移到 sd card 卡
但我用 xe7 開發的 app, 移動鍵是灰色, 我猜是 permissions 要開, 但不知是那一項,
不知有沒有網友知道是那一組要開?
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2014-11-12 12:08:24 IP:114.32.xxx.xxx 訂閱
參考一下,不過我沒自己試過。

blog.gasolin.idv.tw/2010/05/sd22.html

以下則是英文官網

developer.android.com/guide/topics/data/install-location.html

===================引 用 P.D. 文 章===================
請問各位

xe7 android 4.3(以上) 安裝後, 想移到 external sd card 中,
通常我們會利用 android 中的應用程式, 選擇 "移動", 大多數的 app 都可以移到 sd card 卡
但我用 xe7 開發的 app, 移動鍵是灰色, 我猜是 permissions 要開, 但不知是那一項,
不知有沒有網友知道是那一組要開?
------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2014-11-12 14:18:47 IP:118.160.xxx.xxx 未訂閱
感謝蕭大的提供, 
不過我想問的是, 安裝時是裝在本機中的app, 如何讓 android 可以移動到 sd card, 而不是安裝時就預先指定 sd
會這樣的問, 是因為

我原先測試的手機沒有裝 sd, 所以全部安裝到 local 是理所當然,
然而我後加了 sd, 原先已安裝的 app, 想要移過去, 可是 android 上這個功能沒有權限,
因此如何啟動(即權限打開), 這是我想問的!
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2014-11-12 14:26:27 IP:210.61.xxx.xxx 未訂閱
印象中有個軟體叫App2SD,PD大可以找看看~~
另外~
沒記錯的話4.3(還是4.2?忘了)版本開始"好像"就不支援可安裝在SD...
可能要用一些方法去移動


===================引 用 P.D. 文 章===================
感謝蕭大的提供,
不過我想問的是, 安裝時是裝在本機中的app, 如何讓 android 可以移動到 sd card, 而不是安裝時就預先指定 sd
會這樣的問, 是因為

我原先測試的手機沒有裝 sd, 所以全部安裝到 local 是理所當然,
然而我後加了 sd, 原先已安裝的 app, 想要移過去, 可是 android 上這個功能沒有權限,
因此如何啟動(即權限打開), 這是我想問的!
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2014-11-12 15:02:12 IP:114.32.xxx.xxx 訂閱
PD兄,

我印象中加了那個設定後,並不代表一定會裝到sd上,而是當一些條件下才會被裝的樣子。但假始它被裝在系統的 "sd" 上,會因為有那樣的選項,才能把它移出來。

晚點我再查或試一下,或是你有時間先測? 又或是你已經測過了… 但不行?

===================引 用 P.D. 文 章===================
感謝蕭大的提供,
不過我想問的是, 安裝時是裝在本機中的app, 如何讓 android 可以移動到 sd card, 而不是安裝時就預先指定 sd
會這樣的問, 是因為

我原先測試的手機沒有裝 sd, 所以全部安裝到 local 是理所當然,
然而我後加了 sd, 原先已安裝的 app, 想要移過去, 可是 android 上這個功能沒有權限,
因此如何啟動(即權限打開), 這是我想問的!
------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2014-11-12 15:04:49 IP:114.32.xxx.xxx 訂閱
我剛去看了一下官網,似乎將 preferExternal 改成 auto 才是我講的那種情形。


試看看 auto 吧




===================引 用 aftcast 文 章===================
PD兄,

我印象中加了那個設定後,並不代表一定會裝到sd上,而是當一些條件下才會被裝的樣子。但假始它被裝在系統的 "sd" 上,會因為有那樣的選項,才能把它移出來。

晚點我再查或試一下,或是你有時間先測? 又或是你已經測過了… 但不行?


------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
h@visli
資深會員


發表:101
回覆:417
積分:418
註冊:2004-02-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2014-11-17 10:03:56 IP:61.145.xxx.xxx 未訂閱

aftcast 在2樓的回復是正確的。
你需要在Delphi XE6/7的IDE中,把Project Options--Version Info--InstallLocation設置為preferExtenal或者為auto。這樣Android就可以把App移動到SD卡,或者移回到記憶體。
但是......,
由於XE存在一個Bug,導致設置無用,這個Bug一直到XE7還沒改正。
打開AndroidManifest.template.xml,這個Delphi生成的範本檔,把android:installLocation屬性的位置放錯了,你要自己改一下,
把這個屬性從節點,移到根節點下即可。
記得把./Android/Debug或./Android/Release下舊的AndroidManifest.xml檔刪除。
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2015-05-29 01:24:12 IP:118.160.xxx.xxx 未訂閱
潛水了, 讓它再浮一下, 看來XE8還是沒有改到!
JamesJuan
中階會員


發表:2
回覆:75
積分:80
註冊:2003-04-08

發送簡訊給我
#9 引用回覆 回覆 發表時間:2015-05-29 09:55:48 IP:59.127.xxx.xxx 未訂閱
PD 大大您好
剛剛幫您試了一下,確認 XE8 這個部分沒有問題
有圖有真相

這個部分 h@visli 大大講的方向大致是沒有錯的,但是如果是以前的專案升級上來,那可能需要自行檢查一下 AndroidManifest.template.xml 的內容是否沒有問題

或你也可以參考之前我寫的這篇
http://jamesjuantw.pixnet.net/blog/post/167228859
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#10 引用回覆 回覆 發表時間:2015-05-29 11:00:51 IP:118.160.xxx.xxx 未訂閱
sorry, 可能我言不及意啦!  h@visli 前輩的資料我有看過, 但我想的是, 應該是EMBT應該把它給方便化, 而不是我們直接去改xml, 坦白說, 我們只會delphi, 其他都不會, 改這個部份對我們來說不是熟門熟路, 所以都不太敢去改, 我就是那種只會開車不會修車的人, 有空會再研究提供的資訊,謝謝啦!
===================引 用 JamesJuan 文 章===================
PD 大大您好
剛剛幫您試了一下,確認 XE8 這個部分沒有問題
有圖有真相

這個部分 h@visli 大大講的方向大致是沒有錯的,但是如果是以前的專案升級上來,那可能需要自行檢查一下 AndroidManifest.template.xml 的內容是否沒有問題

或你也可以參考之前我寫的這篇
http://jamesjuantw.pixnet.net/blog/post/167228859
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#11 引用回覆 回覆 發表時間:2015-05-29 16:13:26 IP:118.160.xxx.xxx 未訂閱
搞了一個大烏龍, 
我一直無法啟用的原因是, 我改錯檔, 應該是AndroidManifest.template.xml, 我都改到 AndroidManifest.xml, 難怪大家都可以, 為什麼我都不能移動,
改好後, 果然移動會出現了, 也可以移, 但這又衍生另一個新的疑惑
預設是裝在本機中, 在 android\data 下com.embarcadero.project1 下我有建立 一個 data 子目錄, 內應該要存3支sdb檔, 在本機中是有的,
但我移動後, ext_sdcard 中也有建立對應的目錄, 可是並沒有任何檔案, 然後我儲存任何資料到這個sdb中, 還是在本機中, ext中仍然沒有任何變化
是否除了這樣移動外, 檔案路徑的指定, 我們也要自己判斷,
原先系統我都是用 TPath.GetSharedDocumentsPath, 我原以為 Android 移動到 ext_sdcard上, 所有路徑指標應該是會自動導引過去, 看來好像不是那麼回事,
然而, 我稍微去看了一下 System.IOUtils 的內容, 看不出所以然, 不知道這一部份又是該如何處理呢?
系統時間:2017-12-13 21:14:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!