#java #android
Вопрос:
Я пытаюсь создать pdf-файл во внутренней памяти с помощью этого кода, но я не смог создать pdf-файл по каким-то неизвестным причинам у меня Android 11 в logcat нет ошибок, тост показывает успех, пожалуйста, помогите мне с кодом
MainActivity.java
public class MainActivity extends AppCompatActivity {
Button create_btn;
File file;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
create_btn = findViewById(R.id.create_btn);
ActivityCompat.requestPermissions(this, new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE}, PackageManager.PERMISSION_GRANTED);
createPDF();
}
private void createPDF() {
create_btn.setOnClickListener(view -> {
PdfDocument myPdfDocument = new PdfDocument();
Paint myPaint = new Paint();
PdfDocument.PageInfo myPageInfo1 = new PdfDocument.PageInfo.Builder(250, 400, 1)
.create();
PdfDocument.Page myPage1 = myPdfDocument.startPage(myPageInfo1);
Canvas canvas = myPage1.getCanvas();
canvas.drawText("Expert Laptops", 40, 50, myPaint);
myPdfDocument.finishPage(myPage1);
file = new File(MainActivity.this.getExternalFilesDir("/"), "firstPDF.pdf");
try {
myPdfDocument.writeTo(new FileOutputStream(file));
Toast.makeText(MainActivity.this, "Sucessfull", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, "Unsucessful", Toast.LENGTH_SHORT).show();
}
myPdfDocument.close();
});
}
}
Android Manifest
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:requestLegacyExternalStorage="true".../>
Спасибо
Комментарии:
1. Как вы проверили, есть ли файл там,?
2. Вещи в манифесте не нужны для этого места хранения
3. Я открыл файловый менеджер и проверил внешнее хранилище, где он должен быть создан, и провел поиск по всему файловому менеджеру с именем pdf
4.
where it should be created
Действительно, ни один файловый менеджер не может отобразить ваш afile = new File(MainActivity.this.getExternalFilesDir("/"), "firstPDF.pdf");
. Вы взглянули на стоимостьfile.getAbsolutePath()
? Это указывает вам путь к вашему файлу. Теперь найдите путь, а затем повторите попытку с помощью файловых менеджеров, а затем сообщите нам, как глубоко вы можете ввести этот путь к каталогу.5. Спасибо blackapps, ваше предложение дало мне идею, поэтому я немного поиграл с кодом и указал путь, по которому я могу легко найти свой pdf-файл