導航:首頁 > 操作系統 > 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調用相冊許可權相關的資料

熱點內容
佳明怎麼配對安卓 瀏覽:245
用什麼app校對試卷 瀏覽:101
基於單片機的光控路燈 瀏覽:33
為什麼說安卓平板適配的軟體少 瀏覽:676
三國志下載pdf 瀏覽:683
為什麼單片機c語言 瀏覽:423
演算法一定有一個或多個輸入 瀏覽:242
浪潮伺服器貴州銷售雲主機 瀏覽:844
amdlinux顯卡安裝 瀏覽:570
泰海科技雲伺服器如何卸載 瀏覽:124
有密碼打開excel加密 瀏覽:822
java生成重復字元 瀏覽:282
串口伺服器有什麼用 瀏覽:330
linux安裝red5 瀏覽:295
單片機中斷時入口地址作用 瀏覽:150
程序員的工作是重復性的嗎 瀏覽:68
照片怎麼轉換成pdf 瀏覽:134
女生學編程好嗎 瀏覽:240
目前絕地求生怎麼看伺服器地址大全 瀏覽:827
論人類不平等的起源pdf 瀏覽:438