2

Phonegap と image-resizer プラグインを使用して、次のコードで画像を A​​ndroid デバイスに保存しました。

try {
  // Obligatory Parameters, throw JSONException if not found
  String filename = params.getString("filename");
  filename = (filename.contains(".")) ? filename : filename + "."+ format;
  String directory = params.getString("directory");
  directory = directory.startsWith("/") ? directory : "/"+ directory;
  int quality = params.getInt("quality");
  OutputStream outStream;
  //store the file locally using the external storage directory
  File file = new File(Environment.getExternalStorageDirectory()
    .toString() + directory, filename);
  try {
    outStream = new FileOutputStream(file);
    if (format.equals(FORMAT_PNG)) {
      bmp.compress(Bitmap.CompressFormat.PNG, quality, outStream);
    } else {
      bmp.compress(Bitmap.CompressFormat.JPEG, quality, outStream);
    }
    outStream.flush();
    outStream.close();
    JSONObject res = new JSONObject();
    res.put("url", "file://" + file.getAbsolutePath());
    result = new PluginResult(Status.OK, res);
    scanPhoto(imageData.substring(8));
  } catch (IOException e) {
      result = new PluginResult(Status.ERROR, e.getMessage());
  }
  } catch (JSONException e) {
    result = new PluginResult(Status.JSON_EXCEPTION, e.getMessage());
  }
}

次に、ギャラリーで利用できるようにするために、この関数が呼び出されます。

private void scanPhoto(String imageFileName) {
  Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
  File f = new File(imageFileName);
  Uri contentUri = Uri.fromFile(f);
  mediaScanIntent.setData(contentUri);
  this.cordova.getActivity().sendBroadcast(mediaScanIntent);
}

更新:ただし、ギャラリーに行くと、画像はキャッシュと呼ばれるグループにあるため、カメラとキャッシュの2つのグループがあります。代わりに、これをアプリケーションの名前に変更するにはどうすればよいですか? -アプリ名のフォルダーにディレクトリをポイティングした後、アプリ名を取得しました

4

0 に答える 0