导航:首页 > 操作系统 > android调用相册权限

android调用相册权限

发布时间:2023-05-19 12:35:16

android 用AlertDialog启用相机权限的代码怎么写啊

/**
* @Description 调用系统相机照相,获取原图像
* @param activity 就是你的mainactivity
* @param dir 拍照后保存在本地的图片路径
* @param filename 图片的名称
* @param cmd 返回的requestCode

* @return void
*/
public static boolean takePhoto(final Activity activity, final String dir,
final String filename, final int cmd) {
String filePath = dir + filename;

// final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Log.d("test", "MediaStore.ACTION_IMAGE_CAPTURE"
+ android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final Intent intent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE == null ? "android.media.action.IMAGE_CAPTURE"
: android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final File cameraDir = new File(dir);
if (!cameraDir.exists()) {
// return false;
cameraDir.mkdirs();
}

final File file = new File(filePath);
final Uri outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
try {
activity.startActivityForResult(intent, cmd);

} catch (final ActivityNotFoundException e) {
return false;
}
return true;
}

然后在你的onactivityforresult方法里写:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

switch (requestCode) {
case PHOTOGRAPH://拍照
if (resultCode == RESULT_OK) {
String url = FileHelper.Get_SDCardPath() + Constant.HHXH_IMGDIR
+ BitmapUtil.tempPhoto;//图片路径,和你前面调用相册时设的路径一样
Bitmap bitmap = BitmapUtil
.extractThumbNail(url, 480, 320, true);//这里是根据本地路径获取图片并压缩的,这个我写的代码比较多就不上传了
findviewbyid(R.id.imgPhoto).setImageBitmap(bitmap);

}
}
}

⑵ Android WebView 调用系统拍照和相册

由于业务需要,APP内嵌H5,需要调去系统相册和拍照,网上找了点资料,整理一下,供大家参考:

private static final int REQUEST_CAMERA =1;

private static final int REQUEST_CHOOSE =2;

private ValueCallbackmUploadMessage;

private ;

private UricameraUri;

//5.0以后的方法

webView.setWebChromeClient(new WebChromeClient() {

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)

@Override

    public boolean onShowFileChooser(WebView webView, ValueCallback filePathCallback, FileChooserParams fileChooserParams) {

if (mUploadMessagesAboveL !=null) {

mUploadMessagesAboveL.onReceiveValue(null);

            mUploadMessagesAboveL =null;

        }else {

mUploadMessagesAboveL = filePathCallback;

            selectImage();

        }

return true;

    }

});

//选择图片和拍照,对应的string文件,可以自己写死:拍照,相册,取消

private void selectImage() {

ActionSheet.createBuilder(this, getSupportFragmentManager()).

setOtherButtonTitles(new String[]{getResources().getString(R.string.common_tip_photos), getResources().getString(R.string.common_picture)}).

setCancelButtonTitle(getResources().getString(R.string.common_cancel)).setCancelableOnTouchOutside(true).setListener(new ActionSheet.ActionSheetListener() {

public void onDismiss(ActionSheet actionSheet, boolean isCancel) {

if (mUploadMessage !=null) {

mUploadMessage.onReceiveValue(null);

                mUploadMessage =null;

            }

if (mUploadMessagesAboveL !=null) {

mUploadMessagesAboveL.onReceiveValue(null);

                mUploadMessagesAboveL =null;

            }

actionSheet.dismiss();

        }

@RequiresApi(api = Build.VERSION_CODES.M)

public void onOtherButtonClick(ActionSheet actionSheet, int index) {

switch (index) {

case 0:

chosePicture();

break;

                case 1:

setRequestCamera();

            }

}

}).show();

}

//拍照,添加权限申请  这个可以自己写下,我这边是项目中写好的,直接拿过来用了

public void setRequestCamera() {

permissionsBuilder =new YXTPermissionsBuilder.Builder(this)

.setOnGrantedListener((requestCode, perms) -> {

openCamera();

            })

.setRationale4NeverAskAgain(LanguageUtils.isEnglish() ? String.format(getString(R.string.permission_tips), getString(R.string.common_camera), getString(R.string.app_name), getString(R.string.app_name)) :

String.format(getString(R.string.permission_tips), getString(R.string.app_name), getString(R.string.common_camera), getString(R.string.app_name)))

//必需

            .setRequestCode(ConstantsData.GET_CAMERA)

.build();

    permissionsBuilder.requestPermissions(Manifest.permission.CAMERA);

}

/**

* 本地相册选择图片

*/

private void chosePicture() {

Intent innerIntent =new Intent(Intent.ACTION_GET_CONTENT, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

    innerIntent.setType("image/*");

    Intent wrapperIntent = Intent.createChooser(innerIntent, null);

    startActivityForResult(wrapperIntent, REQUEST_CHOOSE);

}

/**

* 打开照相机

*/

private void openCamera() {

Intent intent =new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    String imagePaths = Environment.getExternalStorageDirectory().getPath() +"/pbccrc/Images/" + (System.currentTimeMillis() +".jpg");

    // 必须确保文件夹路径存在,否则拍照后无法完成回调

    File vFile =new File(imagePaths);

    if (!vFile.exists()) {

File vDirPath = vFile.getParentFile();

        vDirPath.mkdirs();

    }else {

if (vFile.exists()) {

vFile.delete();

        }

}

cameraUri = FileProvider.getUriForFile(

this,

            getPackageName() +".fileprovider",

            vFile);

    intent.putExtra(MediaStore.EXTRA_OUTPUT, cameraUri);

    startActivityForResult(intent, REQUEST_CAMERA);

}

/**

* 选择照片后结束

*

* @param data

*/

private UriafterChosePic(Intent data) {

if (data !=null) {

final String path = data.getData().getPath();

        if (path !=null && (path.endsWith(".png") || path.endsWith(".PNG") || path.endsWith(".jpg") || path.endsWith(".JPG"))) {

return data.getData();

        }else {

Toast.makeText(this, "上传的图片仅支持png或jpg格式", Toast.LENGTH_SHORT).show();

        }

}

return null;

}

/**

* 返回文件选择

*/

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {

if (mUploadMessagesAboveL !=null) {

onActivityResultAboveL(requestCode, resultCode, intent);

    }

if (mUploadMessage ==null)return;

    Uri uri =null;

    if (requestCode ==REQUEST_CAMERA && resultCode ==RESULT_OK) {

uri =cameraUri;

        Log.e("onActivityResult: " + uri.toString());

    }

if (requestCode ==REQUEST_CHOOSE && resultCode ==RESULT_OK) {

uri = afterChosePic(intent);

    }

mUploadMessage.onReceiveValue(uri);

    mUploadMessage =null;

    super.onActivityResult(requestCode, resultCode, intent);

}

/**

* 5.0以后机型 返回文件选择

*

* @param requestCode

* @param resultCode

* @param data

*/

private void onActivityResultAboveL(int requestCode, int resultCode, Intent data) {

Uri[] results =null;

    if (requestCode ==REQUEST_CAMERA && resultCode ==RESULT_OK) {

results =new Uri[]{cameraUri};

    }

if (requestCode ==REQUEST_CHOOSE && resultCode ==RESULT_OK) {

if (data !=null) {

String dataString = data.getDataString();

            if (dataString !=null)

results =new Uri[]{Uri.parse(dataString)};

        }

}

mUploadMessagesAboveL.onReceiveValue(results);

    mUploadMessagesAboveL =null;

return;

}

基本都可以拿去用了,希望有帮助

⑶ 手机里相册权限在哪开启

这里以苹果XS手机为例:

1、在自己的手机桌面上找到“设置”并打开“设置”。

⑷ 怎么从相册选择需要读取外置存储权限图片

1. 首先,需要在AndroidManifest.xml文件中添加读取外置存储权限:

```java
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
```
2. 然后,使用Intent调用系统相册选择图片:纤宴

```java Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, REQUEST_CODE); ```

3、最后,明竖者在onActivityResult()方法激薯中获取返回的数据并显示出来。

⑸ android相册移动照片权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
应该要仔裤加上 对存储设备的读写权限, 有拍照么基困 ,有的话还得加上拍照调用硬件camera 的权限念锋简

⑹ android怎么调用系统自带的图库打开指定目录的相册

//使用Intent来调滑脊用相信则渗册盯哗

Intent intent=new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
//使用startActivityForResult来调用相册界面startActivityForResult(intent, REQ_PICK_PICTURE_FROM_GALLERY);

⑺ android中怎么读取系统相册

Intent intent= new Intent(Intent.ACTION_GET_CONTENT);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(intent, REQUEST_CODE_SELECT_IMAGE);
表示调用相册选择图片
如果你要选择文件:
Intent intent= new Intent(Intent.ACTION_GET_CONTENT);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "file/*");
startActivityForResult(intent, REQUEST_CODE_SELECT_IMAGE);

⑻ android打开本地照相机需要什么权限

部分手扮消机支厅判知持修改应用程序权限:智能管理器-应用程序权限管理/应用程序许可-点击应用程序/权限-滑动对应开关即可设置。
注:部分内置软件权限为系统默认冲答,无法更改。

⑼ android studio如何调用系统相册

在Android Studio中,可以使用Intent调用含哗握系统相册。以下是具体步骤:
1. 在你的Android Studio项目中创建一个Button或ImageView,用于触发打开相册的事件。
2. 在Button或ImageView的OnClick事件中添加以下代码:
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, PICK_IMAGE_REQUEST);
其中,PICK_IMAGE_REQUEST是一个整数常量,用于在Activity返回结果时进行识别。
3. 在Activity中添加以下代码,以处理从相册返回的结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri uri = data.getData();
// 使用uri加载图片
}
}
在这个方法中,芦衫我们检查requestCode是否等于PICK_IMAGE_REQUEST,resultCode是否等于RESULT_OK,以及data和data.getData()是否不为null。如果这些条件都满足,我们就可以使用data.getData()方法获取从相册中选择的图片的Uri,并使用这个Uri加载图片。
注意:在使用打开谈庆相册的Intent时,需要在AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
这个权限用于读取存储在设备上的图片。

⑽ Android权限目录

android:name="android.permission.INTERNET"————访问网络

android:name="饥带android.permission.ACCESS_NETWORK_STATE"————获取网络状态

android:name="android.permission.ACCESS_WIFI_STATE"————获取WiFi状态

android:name="android.permission.WRITE_EXTRNAL_STORAGE"————写入外部储存

android:name="android.permission.READ_EXTRNAL_STORAGE"——胡弊——读取外部储存

android:name="android.permission.WRITE_EXTRNAL_STORAGE"————写入外部储存

android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEM"

tools:ignore="ProtectedPermission"————挂载卸载文件系统

android:name="android.permission.READ_PHONE_STATE"————读取电话状态

android:name="android.permission.VIBRATE"————允许震动

android:name="android.permission.WAKE_LOCK"————允许后台运行

android:name="android.permission.READ_LOGS"

tools:ignore="ProtectedPermission"————读取系统文件

android:name="android.permission.CAMERA"————调用相机权限

android:name="android.permission.CALL_PHONE"————调用打电话权限

android:name="com.fingerprints.service.ACCESS_FINGERPRINT_MANAGER"————指纹识别

android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"————

android:name="com.samsung.android.providers.context.permission.EXPAND_STATUS_BAR"————通知栏伸缩

android:name="android.permission.REQUEST_INSTALL_PACKGES"烂做芦————允许请求未知来源权限

阅读全文

与android调用相册权限相关的资料

热点内容
考编教师用什么app 浏览:189
静态面向对象编程语言 浏览:902
炒股密码pdf 浏览:661
差分算法有哪些 浏览:563
佳明怎么配对安卓 浏览:245
用什么app校对试卷 浏览:101
基于单片机的光控路灯 浏览:33
为什么说安卓平板适配的软件少 浏览:680
三国志下载pdf 浏览:689
为什么单片机c语言 浏览:429
算法一定有一个或多个输入 浏览:252
浪潮服务器贵州销售云主机 浏览:850
amdlinux显卡安装 浏览:572
泰海科技云服务器如何卸载 浏览:124
有密码打开excel加密 浏览:823
java生成重复字符 浏览:282
串口服务器有什么用 浏览:330
linux安装red5 浏览:295
单片机中断时入口地址作用 浏览:150
程序员的工作是重复性的吗 浏览:69