HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1203
エイカHSP3dish、アンドロイド版bsave、bloadを指定のフォルダにする方法8解決


エイカ

リンク

2017/12/3(Sun) 08:10:06|NO.81951

よろしくお願いします

hsp3dishのアンドロイド版のbsave、bloadが
指定のフォルダに出来ません


カレント=dirinfo(0) カレント2=dir_cur dialog カレント,0 dialog カレント2,0
とカレントを探ろうとしても何故か文字列は出てこないし
試しに

bsave "/sdcard/msksave/ms-sdata.sav",sdata
とやってみてもアプリが落ちました

アドバイスなど、よろしくお願いします。



この記事に返信する


法貴優雅

リンク

2017/12/3(Sun) 16:22:26|NO.81954

今、HSP3Dish環境がないので、試していませんが
見たところ外部ストレージにアクセスするようなので
AndroidManifest.xmlに

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
を追記する必要がある気がします…それだけでは、ないかもしれませんが
エスパーじゃないので、ログなしではわかりません。



エイカ

リンク

2017/12/3(Sun) 20:55:42|NO.81957

アドバイス、ありがとうございます。
とりあえず、簡単な

#include "hsp3dish.as" screen 0,480,800 dim sdata,30,30,30 bsave "/sdcard/ms-sdata.sav",sdata *syuukai redraw 0 mes "ok" redraw 1 await 1 goto *syuukai
を組んでみたのですが
helperの「転送」や「logcat」が
うまく行きません…

win8.1 64bit
SDKは旧型でも動くように古いのを使っている
helper1.6、HSP3.5リリース版
APIは19です。

端末はME173やkindle fireなどなのですが
ME173では転送すらうまく行かず
kindle fireではlogcatで物によったり時によったり
logcatがうまくいいったり行かなかったりです

ハブのUSB端子しか使えないからよくないのか
ドライバを入れないとダメなのか
USBケーブルがダメなのか
それとも、プロジェクト自体が何かミスをしてるのか

さっぱりです…



エイカ

リンク

2017/12/3(Sun) 21:13:17|NO.81958

追記

kindle fireの場合はlogcatが

---------beginning of amazon_main ---------beginning of kernel
この2つの辺りで止まるのです



法貴優雅

リンク

2017/12/4(Mon) 18:52:10|NO.81964

HSP3Dishの環境を整えたのでテストしたところ
私の環境では、SDカード上にファイルを書き込むことができたのを確認しました。
Windows10、SDK25.2.5、NDKr14、JDK8、Ant1.9.9と、てきとーなスマートフォンです。

テストしたコードは同一のソースで

bsave "/mnt/sdcard/ms-sdata.sav", sdata
/mnt/部分が変更点です。

パーミッションの件も自動で追記されていましたので
前回の私の指摘はいらないです。

ME173は適切なUSBドライバがインストールされていない感じがします。
kindle fireのlogcatは正常ですが、アプリを起動した際は
もっといろいろログに出るはずですので、何かおかしいのかもしれません。



エイカ

リンク

2017/12/5(Tue) 02:25:45|NO.81967

アドバイス、ありがとうございます

おかげで、確かに「sdcard」下には「ms-sdata.sav」を作成できたのですが
出来れば、「msksave」フォルダを作って、その下に保存したいのです
(現在、msksaveフォルダはhsp3dishの命令で作れています)

よろしくお願いします

追伸:ホームページ見させて頂きました
ゲーム制作、そちらもがんばって下さい。



f

リンク

2017/12/5(Tue) 10:18:43|NO.81968

…念のためだが、ディレクトリの構成はメーカーや機種に拠るから決め打ちは危険。



法貴優雅

リンク

2017/12/5(Tue) 19:11:47|NO.81970

どうやらAndroid4.4以降、自由にSDカードに保存ができないみたいです。

参考文献
https://qiita.com/ariarijp/items/aa365ff47b6e572be3d4

通常は<SDカードのパス>/Android/data/<アプリのパッケージ名>の下にしか
ファイルを書き込めない?らしいです。(なんで直下は書き込めるか謎)
上記文献を元に書いてみたコード。


#include "hsp3dish.as" screen 0,480,800 dim sdata,30,30,30 redraw 0 color 0, 0, 0 boxf color 255, 255, 255 // カレントフォルダ移動 chdir "/mnt/sdcard/Android/data/" // システム的に、カレントフォルダを取得できていないみたい(移動はしてる) mes "["+dir_cur+"]" // フォルダの存在確認 dirlist s, "msksave", 5 if (stat == 0) { // フォルダが存在しないので作る mkdir "/mnt/sdcard/Android/data/msksave" mes "フォルダを作成しました" } else { // フォルダはあるので何もしない mes "フォルダは存在します" } // フォルダにファイルをセーブする bsave "/mnt/sdcard/Android/data/msksave/ms-sdata.sav", sdata mes "セーブしました" redraw 1 stop
あとfさんも言っていますが、機種によってSDのフォルダ名が
全く異なる場合や、そもそもSDカードがない機種等もありますので
その辺をどうするかは、考えてみてください。



エイカ

リンク

2017/12/5(Tue) 20:09:46|NO.81971

fさん、法貴優雅さん
お二人とも、有難うございます

特に法貴優雅さんのNO.81970は
本当に助かりました
答えを書いてもらって助かりました
私では、中々その答えにはたどり着けないので。

ユーザーさんがアプリを消した際に
自発的にフォルダを削除しなければいけなくなる点も含めて
フォルダを掘って保存するのは、多分諦めると思います。

本当にありがとうございました。
頑張りたいと思います。



ONION software Copyright 1997-2023(c) All rights reserved.