私のアプリでは、ユーザーが 'ImageView'を押すと、画像を変更するようにユーザーを促すチューザのインテントが作成されます。ここでオーバーライドの選択のインテントの振る舞い
は、私はImageViewの
userProfileIMG.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
photoPickerIntent.setType("image/*");
Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePhotoIntent.resolveActivity(getPackageManager()) != null)
{
try
{
photoFile = Create_ImageFile();
}
catch (Exception e)
{
Log.e("file", e.toString());
}
if (photoFile != null)
{
takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile.getAbsoluteFile()));
}
}
String pickTitle = getString(R.string.select_or_take_new_picture);
Intent chooserIntent = Intent.createChooser(photoPickerIntent, pickTitle);
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{takePhotoIntent});
startActivityForResult(chooserIntent, ACTIVITY_SELECT_PICTURE);
}
});
のときに、ユーザーのクリックを使用し、これは私の問題は、「ギャラリー」にすると、ユーザープレスで結果
で、選択したコードです私は彼が「Gallery」を押した場合にのみ<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
を要求したいので、セキュリティ上の例外を与える6.0のイメージ。ユーザーが「Gallery」を押したときにその動作を無効にする方法はありますか?私は彼にギャラリーを続けるようにさせた。 または私は私のためのダイアログを構築するためにシステムに依存しない手動で同じチューザーを構築する必要がありますか?
カメラには許可が必要です。カメラへのアクセスを動的に許可する必要があります。 –
より良い方法は、ユーザーがプロフィールページに入ったときに許可を求めることです。カメラとEXTERNAL_STORAGE権限が付与されている場合にのみ、オプションを選択するダイアログを表示します。 –
@RaguSwaminathanいいえ私はカメラにアクセスしていない、私は写真を撮るためにカメラ自体を許可しており、許可が必要ない。 実際、これは、システムアプリがあなたのために仕事をする許可から逃れる方法です。 ここをクリックhttps://developer.android.com/training/permissions/best-practices.html –