mirror of
https://gitee.com/shuto/cordova-imagePicker.git
synced 2026-05-05 00:00:01 +08:00
request permission
This commit is contained in:
@@ -6,12 +6,14 @@ package com.synconset;
|
||||
import org.apache.cordova.CallbackContext;
|
||||
import org.apache.cordova.CordovaPlugin;
|
||||
|
||||
import org.apache.cordova.PermissionHelper;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
@@ -23,37 +25,50 @@ public class ImagePicker extends CordovaPlugin {
|
||||
private JSONObject params;
|
||||
|
||||
public boolean execute(String action, final JSONArray args, final CallbackContext callbackContext) throws JSONException {
|
||||
this.callbackContext = callbackContext;
|
||||
this.params = args.getJSONObject(0);
|
||||
if (action.equals("getPictures")) {
|
||||
Intent intent = new Intent(cordova.getActivity(), MultiImageChooserActivity.class);
|
||||
int max = 20;
|
||||
int desiredWidth = 0;
|
||||
int desiredHeight = 0;
|
||||
int quality = 100;
|
||||
if (this.params.has("maximumImagesCount")) {
|
||||
max = this.params.getInt("maximumImagesCount");
|
||||
}
|
||||
if (this.params.has("width")) {
|
||||
desiredWidth = this.params.getInt("width");
|
||||
}
|
||||
if (this.params.has("height")) {
|
||||
desiredHeight = this.params.getInt("height");
|
||||
}
|
||||
if (this.params.has("quality")) {
|
||||
quality = this.params.getInt("quality");
|
||||
}
|
||||
intent.putExtra("MAX_IMAGES", max);
|
||||
intent.putExtra("WIDTH", desiredWidth);
|
||||
intent.putExtra("HEIGHT", desiredHeight);
|
||||
intent.putExtra("QUALITY", quality);
|
||||
if (this.cordova != null) {
|
||||
this.cordova.startActivityForResult((CordovaPlugin) this, intent, 0);
|
||||
this.callbackContext = callbackContext;
|
||||
this.params = args.getJSONObject(0);
|
||||
if(!PermissionHelper.hasPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)) {
|
||||
PermissionHelper.requestPermission(this, 1, Manifest.permission.READ_EXTERNAL_STORAGE);
|
||||
} else {
|
||||
if (action.equals("getPictures")) {
|
||||
getPictures();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private void getPictures() throws JSONException {
|
||||
Intent intent = new Intent(cordova.getActivity(), MultiImageChooserActivity.class);
|
||||
int max = 20;
|
||||
int desiredWidth = 0;
|
||||
int desiredHeight = 0;
|
||||
int quality = 100;
|
||||
if (this.params.has("maximumImagesCount")) {
|
||||
max = this.params.getInt("maximumImagesCount");
|
||||
}
|
||||
if (this.params.has("width")) {
|
||||
desiredWidth = this.params.getInt("width");
|
||||
}
|
||||
if (this.params.has("height")) {
|
||||
desiredHeight = this.params.getInt("height");
|
||||
}
|
||||
if (this.params.has("quality")) {
|
||||
quality = this.params.getInt("quality");
|
||||
}
|
||||
intent.putExtra("MAX_IMAGES", max);
|
||||
intent.putExtra("WIDTH", desiredWidth);
|
||||
intent.putExtra("HEIGHT", desiredHeight);
|
||||
intent.putExtra("QUALITY", quality);
|
||||
if (this.cordova != null) {
|
||||
this.cordova.startActivityForResult((CordovaPlugin) this, intent, 0);
|
||||
}
|
||||
}
|
||||
|
||||
public void onRequestPermissionResult(int requestCode, String[] permissions,
|
||||
int[] grantResults) throws JSONException {
|
||||
getPictures();
|
||||
}
|
||||
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (resultCode == Activity.RESULT_OK && data != null) {
|
||||
ArrayList<String> fileNames = data.getStringArrayListExtra("MULTIPLEFILENAMES");
|
||||
|
||||
Reference in New Issue
Block a user