Android PDF Açma Hk.
-
Merhaba,
Bir web sitesinde PDF dosyaları var, PDF dosyalarını webview ile yakalıyorum PDF url sini ayırıyorum.
PDF e tıklandığında PDF olarak cihaza indiriyorum fakat indirdikten sonra PDF dosyasını açtıramadım.
Android konusunda yeniyim, yardımcı olabilecek var mı ?
PDF dosyasını açmak için kullandığım kodlar aşağıdadır;
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/test.pdf");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);Aşağıdaki hatayı alıyorum;
android.os.FileUriExposedException: file:///storage/emulated/0/test.pdf exposed beyond app through Intent.getData()
-
DE5TROY3R bunu yazdı
Merhaba,
Bir web sitesinde PDF dosyaları var, PDF dosyalarını webview ile yakalıyorum PDF url sini ayırıyorum.
PDF e tıklandığında PDF olarak cihaza indiriyorum fakat indirdikten sonra PDF dosyasını açtıramadım.
Android konusunda yeniyim, yardımcı olabilecek var mı ?
PDF dosyasını açmak için kullandığım kodlar aşağıdadır;
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/test.pdf");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);Aşağıdaki hatayı alıyorum;
android.os.FileUriExposedException: file:///storage/emulated/0/test.pdf exposed beyond app through Intent.getData()
Hocam androidi pek bilmiyorum fakat implicit ve explicit intent olayi var oyle hatirliyorum. Sen kullanicinin sececegi bir uygulama ile acmasini istiyorsun degil mi ?
Yoksa kendi applicationun icinden mi acmak istiyorsun
-
Yolda hata var gibi?
-
dhmm bunu yazdıDE5TROY3R bunu yazdı
Merhaba,
Bir web sitesinde PDF dosyaları var, PDF dosyalarını webview ile yakalıyorum PDF url sini ayırıyorum.
PDF e tıklandığında PDF olarak cihaza indiriyorum fakat indirdikten sonra PDF dosyasını açtıramadım.
Android konusunda yeniyim, yardımcı olabilecek var mı ?
PDF dosyasını açmak için kullandığım kodlar aşağıdadır;
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/test.pdf");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);Aşağıdaki hatayı alıyorum;
android.os.FileUriExposedException: file:///storage/emulated/0/test.pdf exposed beyond app through Intent.getData()
Hocam androidi pek bilmiyorum fakat implicit ve explicit intent olayi var oyle hatirliyorum. Sen kullanicinin sececegi bir uygulama ile acmasini istiyorsun degil mi ?
Yoksa kendi applicationun icinden mi acmak istiyorsun
Android in kendi pdf görüntüleyicisi var. Onunla seçmeden açtırmasını istiyorum.
Aşağıdaki kod ile yukarıdaki hatadan kurtuldum, pdf görüntüleyiciyi açıyor fakat siyah ekran dosya gelmiyor.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.parse("content:///storage/emulated/0/Download/test.pdf"),
"application/pdf");
startActivity(intent); -
DE5TROY3R bunu yazdıdhmm bunu yazdıDE5TROY3R bunu yazdı
Merhaba,
Bir web sitesinde PDF dosyaları var, PDF dosyalarını webview ile yakalıyorum PDF url sini ayırıyorum.
PDF e tıklandığında PDF olarak cihaza indiriyorum fakat indirdikten sonra PDF dosyasını açtıramadım.
Android konusunda yeniyim, yardımcı olabilecek var mı ?
PDF dosyasını açmak için kullandığım kodlar aşağıdadır;
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/test.pdf");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);Aşağıdaki hatayı alıyorum;
android.os.FileUriExposedException: file:///storage/emulated/0/test.pdf exposed beyond app through Intent.getData()
Hocam androidi pek bilmiyorum fakat implicit ve explicit intent olayi var oyle hatirliyorum. Sen kullanicinin sececegi bir uygulama ile acmasini istiyorsun degil mi ?
Yoksa kendi applicationun icinden mi acmak istiyorsun
Android in kendi pdf görüntüleyicisi var. Onunla seçmeden açtırmasını istiyorum.
Aşağıdaki kod ile yukarıdaki hatadan kurtuldum, pdf görüntüleyiciyi açıyor fakat siyah ekran dosya gelmiyor.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.parse("content:///storage/emulated/0/Download/test.pdf"),
"application/pdf");
startActivity(intent);Uygulama izinleri fln dogru mu hocam ? Dosya erisimi veriyor musun ?
-
dhmm bunu yazdı
Uygulama izinleri fln dogru mu hocam ? Dosya erisimi veriyor musun ?
hocam izinleri vermiştimde. dosya erişimi nedir?
---
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
tanımlı ayrıca kod tarafındada tanımlı;protected boolean shouldAskPermissions() {
return (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1);
}
@TargetApi(23)
protected void askPermissions() {
String[] permissions = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE"
};
int requestCode = 200;
requestPermissions(permissions, requestCode);
}
on create:if (shouldAskPermissions()) {
askPermissions();
}
--- -
DE5TROY3R bunu yazdıdhmm bunu yazdı
Uygulama izinleri fln dogru mu hocam ? Dosya erisimi veriyor musun ?
hocam izinleri vermiştimde. dosya erişimi nedir?
---
tanımlı ayrıca kod tarafındada tanımlı;protected boolean shouldAskPermissions() {
return (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1);
}
@TargetApi(23)
protected void askPermissions() {
String[] permissions = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE"
};
int requestCode = 200;
requestPermissions(permissions, requestCode);
}
on create:if (shouldAskPermissions()) {
askPermissions();
}
---Hocam dedimya androidi pek bilmem. sen READ_EXTERNAL_STORAGE almissin. bunun READ_INTERNAL_STORAGE olanida olmasin sakin ?
-
dhmm bunu yazdı
Hocam dedimya androidi pek bilmem. sen READ_EXTERNAL_STORAGE almissin. bunun READ_INTERNAL_STORAGE olanida olmasin sakin ?
hocam denedim şimdi, öyle yetki çıkmadı.
-
DE5TROY3R bunu yazdıdhmm bunu yazdı
Hocam dedimya androidi pek bilmem. sen READ_EXTERNAL_STORAGE almissin. bunun READ_INTERNAL_STORAGE olanida olmasin sakin ?
hocam denedim şimdi, öyle yetki çıkmadı.
Hocam FileUriExposedException hatasi sen bir uygulamaya ( burada pdf acici ) file://URL seklinde acma linki gonderipte gonderdigin uygulama bu yoldan okuyamazsa olusan bir exceptionmus.
2 sey dene
1)
FLAG_GRANT_READ_URI_PERMISSION
ekleyerek dene2) file:// yerine onune
content://
koyarak bir dene. -
dhmm bunu yazdıDE5TROY3R bunu yazdıdhmm bunu yazdı
Hocam dedimya androidi pek bilmem. sen READ_EXTERNAL_STORAGE almissin. bunun READ_INTERNAL_STORAGE olanida olmasin sakin ?
hocam denedim şimdi, öyle yetki çıkmadı.
Hocam FileUriExposedException hatasi sen bir uygulamaya ( burada pdf acici ) file://URL seklinde acma linki gonderipte gonderdigin uygulama bu yoldan okuyamazsa olusan bir exceptionmus.
2 sey dene
1)
FLAG_GRANT_READ_URI_PERMISSION
ekleyerek dene2) file:// yerine onune
content://
koyarak bir dene.hocam content olarak deneyince yukarıdaki görsellerdeki gibi siyah ekran açılıyor. PDf görüntülemiyor, hatada vermiyor.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.parse("content:///storage/emulated/0/Download/test.pdf"),
"application/pdf");
startActivity(intent); -
FileProvider kullan hocam yada SDK yı 23 den aşağıya çek Target SDK yı .
Intent i=new Intent(Intent.ACTION_VIEW, FileProvider.getUriForFile(this, AUTHORITY, file)); i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivity(i);
MhmdAlmz tarafından 14/Şub/18 11:04 tarihinde düzenlenmiştir