Я пытаюсь сделать снимок и сохранить его во внутреннем хранилище, поэтому таким образом, только мое приложение будет иметь доступ к изображениям , как я могу это сделать? Я стараюсь много вещей без успеха, даже официальная документация от Google сломана, вот мой фактический код, который экономит на общедоступном каталоге:Сделайте снимок и сохраните его на внутренней памяти
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pictures);
imageView = (ImageView)findViewById(R.id.imageView);
fabNewPicture = (FloatingActionButton)findViewById(R.id.fab_new_picture);
fabNewPicture.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
takePicture(v);
}
});
if(ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE }, 0);
}
}
private void takePicture(View v)
{
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
file = Uri.fromFile(getOutputMediaFile());
i.putExtra(MediaStore.EXTRA_OUTPUT, file);
startActivityForResult(i, 100);
}
private static File getOutputMediaFile()
{
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "FotoAula");
if (!mediaStorageDir.exists()){
if (!mediaStorageDir.mkdirs()){
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
return new File(mediaStorageDir.getPath() + File.separator +
"IMG_"+ timeStamp + ".jpg");
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 100) {
if (resultCode == RESULT_OK) {
imageView.setImageURI(file);
}
}
}
Но этот путь картина станет общественностью и доступен даже на галерея, я не хочу этого, потому что мне нужно добавить информацию о базе данных с каждой картинкой, поэтому мне нужно, чтобы они были приватными для моего приложения ...
Как я могу это сделать?
Спасибо!
Это ответ, который может вам ответить: http://stackoverflow.com/questions/22574350/how-to-keep-images-private-to-the-app-and-not- просмотр в галерее –
вы можете сделать две вещи. 1. Сохраните ваши изображения с помощью префикса периода (.). Это скроет ваши изображения из галереи. 2nd-refer to this https://developer.android.com/guide/topics/data/data-storage.html#filesInternal use openFileOutput (FILENAME, Context.MODE_PRIVATE); и сохраните изображение. – RajSharma
The. префикс был бы скорее похож на обходной путь? Или его действительно beign используется в такой ситуации? – user3159043