Open areteruhiro opened 1 month ago
コードの修正がまだ出来ていません、
これ以下の仕様(一度アプリを削除するとリストアするために、上書きしなければいけない)があるんですけど、このままで大丈夫ですか? https://github.com/areteruhiro/LIME-beta-hiro/releases/tag/v1.10.3
今月中にもう少し詳細な検証を行いますね。
僕の技術で無理なら諦めて一旦このまま実装します。
エラー的には権限がないよ!って言われる感じなんですよね
改善策みつかりそうですか? 一旦コード、修正しておきますね
ちょっと調べたけど分かんなかったです。
これ、難しいですが解決方法思い浮かびました。 limeにファイル権限を与える →SharedPreferencesにファイルデータを保存する
XSharedPreferencesで、lineに渡す
public void saveFileToSharedPreferences(Context context, String filePath, String key) throws IOException {
File file = new File(filePath);
byte[] fileBytes = Files.readAllBytes(file.toPath());
String encoded = Base64.encodeToString(fileBytes, Base64.DEFAULT);
SharedPreferences sharedPreferences = context.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, encoded);
editor.apply();
}
public void loadFileFromSharedPreferences(Context context, String key, String outputPath) throws IOException { // SharedPreferences から取得 SharedPreferences sharedPreferences = context.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE); String encoded = sharedPreferences.getString(key, null);
if (encoded != null) {
// Base64デコード
byte[] fileBytes = Base64.decode(encoded, Base64.DEFAULT);
// ファイルとして保存
File outputFile = new File(outputPath);
try (FileOutputStream fos = new FileOutputStream(outputFile)) {
fos.write(fileBytes);
}
}
}
確認項目
説明