2012-01-27 12 views
4

私は単純なJ2ME電話アプリを書いています。終了するときにアプリのステータスを保存したいと思います。周りグーグル
はFileConnectionクラスに私を導い:J2MEでファイルを読み書きして、ユーザーに嫌がらせをしないでください

FileConnection filecon = (FileConnection) Connector.open("file:///E:/mynewfile.txt"); 
filecon.create(); 
// write data to file etc etc 

などなど。これはすべて動作するようですが、しかし、には以下の2つの欠点があります。私のS40の電話では、毎回私はアプリを実行すると、私は "ファイル(アプリケーション)を書くことができますか?"と尋ねられますまたはいくつかのそのようなもの。状態を保存できる他のアプリ(ハイスコアテーブルを保存するゲームなど)があり、ファイルに書き込むことができるかどうかについて毎回尋ねることはありません。私は行方不明のトリックは何ですか?

私はここにいますが、 "///E:/​​mynewfile.txt"というファイル名は、自分の電話機では動作しますが、息子の電話機では機能しない私はプログラムを新しい電話機で動かすたびに、アプリケーションを編集して再コンパイルする必要があることを意味する(私は、プログラムが実行されている携帯電話のプログラムを確立する何らかの不具合を想定することができる。それを使用している少数の人にしてください。それから、有効なディレクトリにある有効なファイルを指し示す文字列を設定しますが、これはどうしたらいいのでしょうか...)。おそらく私はE:/と書いてはいけませんが、アプリケーションXがすべてのデータファイルを置く標準的な「場所」がありますか?そして、それは何らかの形でデバイスに依存しない、少なくともある程度は?もう一度、私はおそらくトリックを欠いている - と私が尋ねている2つの問題はおそらく関連している。

私は何をしていますか?

+1

これは証明書関連の署名によるものです!証明書を購入する必要があります。これらの質問は消えます。 – pheromix

+1

何ですか?私は、デバイスに依存しないアプリケーションを書くことができるという特権を支払う必要がありますか? Meh: -/ –

+0

それは現実です。すべてではないにせよほとんどの通知を削除できるようにするには、証明書を購入する必要があります。 – jean27

答えて

2

自分自身の答えは私の質問:私は、RecordStoreクラスのメソッドを使用して、プログラムのリソースに配置されているファイルを読み書きすることができます。

6

1 - "fileconnection"の代わりに "RMS"を使用して、アプリケーションステータスを保存することができます。
2 - アプリケーションは、Connector.open()を使用して接続を開きます。入力文字列の形式の完全修飾された、絶対パスを含まなければならない:

file://<host>/<root>/<directory>/<directory>/.../<name> 

ホスト要素は、空であってもよい - 文字列は、ローカルホスト上のファイルを指す場合、しばしば、あろう。ルートディレクトリは、特定のストレージユニットの論理マウントポイントに対応します。 ルート名はデバイス固有のものです。次の表は、ルート値のいくつかの例を提供し、それらを開く方法:

CFCard/ 
FileConnection fc = (FileConnection) Connector.open("file:///CFCard/"); 
SDCard/ 
FileConnection fc = (FileConnection) Connector.open("file:///SDCard/"); 
MemoryStick/ 
FileConnection fc = (FileConnection) Connector.open("file:///MemoryStick/"); 
C:/ 
FileConnection fc = (FileConnection) Connector.open("file:///C:/"); 
/ 
FileConnection fc = (FileConnection) Connector.open("file:////"); 

いくつかの特別なルートははSystem.getProperty(が獲得しなければならない)方法:たとえば

fileconn.dir.photos: Image capture through your Mobile camera. 
fileconn.dir.videos: Vedio capture through your Mobile camera. 
fileconn.dir.tones: Ring tones default directory. 
fileconn.dir.memorycard: Memory Card , SD Card , Flash Drive root directory 
fileconn.dir.private: Working directory of midlet 

String galleryDir = System.getProperty("fileconn.dir.photos"); 
FileConnection filecon = (FileConnection) Connector.open(galleryDir); 
関連する問題