Так что я немного застрял в этом. Сначала я использовал простое намерение захватить фотографию и показать, что в изображении с использованием растрового изображения оно сохраняется в дополнительных функциях. , чтобы сохранить это, чтобы я мог загрузить его в хранилище для базы данных. ive последовал учебный урок в разработчике Android, фотографируя просто. ive огляделся и подумал, что мне тоже может понадобиться сканировать со счетом, но фактическая фотография уже найдена в галерееfileprovider не сохраняет изображение в каталоге приложения
Я могу получить файл, созданный, но это 0bytes в приложении галереи. Я действительно вижу фотографию но в файловом менеджере и настольном браузере я вижу только пустой файл. Я действительно не хочу использовать камеру api.
Также, когда я снимаю фотографию, используя приложение, которое снимает фотографии, а затем продолжает мое приложение. перед файловым провайдером это сработает и вернет растровое изображение Спасибо за внимание.
Любой избыточный код в методе createfilepath это я экспериментировал с андроида я думаю, что проблема с приложениями камеры, разбивающихся но с ним происходит все caera приложения я имею его мой код
<?xml version="1.0" encoding="utf-8"?>
<resources>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="my_images" path="Android/data/com.example.testing.app/files/Pictures" />
</paths>
</resources>
public void newImage(){
if(pic.resolveActivity(getActivity().getPackageManager())!=null) {
File photoFile = createFilePath();
if(photoFile!=null){
Log.d("abc", "newImage: "+photoFile.toString());
Uri photoURI = FileProvider.getUriForFile(getActivity(),"com.example.testing.app.fileprovider",photoFile);
Log.d("abc", "newImage: "+photoURI.toString());
pic.putExtra(MediaStore.EXTRA_OUTPUT,photoURI);
startActivityForResult(pic,1);
}
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d("test", "onActivityResult: ");
if(requestCode==1&&resultCode==RESULT_OK){
// galleryAddPic();
Bundle extra= data.getExtras();
bit =(Bitmap) extra.get("data");
Log.d("abc", "onActivityResult: "+extra.get(MediaStore.EXTRA_OUTPUT).toString());
picture.setImageBitmap(bit);
}
}
public File createFilePath(){
File filepath= getActivity().getExternalFilesDir(Environment.DIRECTORY_PICTURES);
Log.d(TAG, "createFilePath: "+ filepath.toString());
File filepath2 = new File(filepath.getAbsolutePath());
File filepath3=null;
try {
filepath3 = File.createTempFile("temp", ".jpg", filepath4);
Log.d(TAG, "createFilePath: ");
return filepath3;
// nCurrentPhotoPath = filepath3.getAbsolutePath();
}catch(IOException e){
e.printStackTrace();
Log.d(TAG, "createFilePath: ");
}
return filepath3;
}
EDIT Provider в Manifest
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.testing.app.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths"/>
</provider>
функции и полномочия
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-feature android:name="android.hardware.Camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera2" android:required="false"/>
<uses-feature android:name="android.hardware.location.gps"/>
Опубликуйте файл своего провайдера. – Pztar
У меня есть код манифеста – ah4444