Tôi đang phát triển một ứng dụng Android và tôi phải mở một số tệp.Mở tệp pdf
này được mã của tôi sử dụng ý:
public class FacturaActivity extends Activity {
(...)
public void downloadInvoice(View view) {
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/"+ filename);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),"application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
}
}
Tệp nằm trong thư mục gốc của thẻ SD và tôi có thể tự mở nó.
Vấn đề
ứng dụng được đóng lại khi nó đến lúc startActivity (mục đích). Tôi nghĩ rằng vấn đề là trong tập tin AndroidManifest.xml, nhưng tôi không biết làm thế nào để đặt nó một cách chính xác.
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name="###.MyApplication" > <!--cant show complete name-->
<activity
android:name="###.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".FacturaActivity" >
</activity>
</application>
LogCat
07-03 15:49:13.094: E/AndroidRuntime(1032): FATAL EXCEPTION: main
07-03 15:49:13.094: E/AndroidRuntime(1032): java.lang.IllegalStateException: Could not execute method of the activity
(...)
07-03 15:49:13.094: E/AndroidRuntime(1032): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///mnt/sdcard/201209_F2012212782.PDF typ=application/pdf flg=0x40000000 }
07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Activity.startActivityForResult(Activity.java:2817)
07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Activity.startActivity(Activity.java:2923)
bạn có thể giúp tôi để hoàn thành AndroidManifest? Hoặc làm thế nào tôi có thể mở pdf?
có vẻ như Android của bạn không có ứng dụng nào đọc pdf được cài đặt, thêm một –
tôi có thể mở các file khác pdf với ThinkFree PDF Viewer. – Lyd
Bài đăng trên blog này giúp bạn nếu bạn đang cố gắng sử dụng 'Trình cung cấp nội dung' (hiện được khuyến nghị): http://www.blogc.at/2014/03/23/share-private-files-with-other-apps- fileprovider/ – Sakiboy