我正在开发一个Android应用程序,我必须打开一些文件.
这是我使用intent的代码:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
文件位于SD卡的根目录中,我可以手动打开它.
问题
应用程序在到达startActivity(intent)时关闭.我认为问题出在AndroidManifest.xml文件中,但我不知道如何正确使用它.
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>
Run Code Online (Sandbox Code Playgroud)
logcat的
07-03 15:49:13.094: E/AndroidRuntime(1032): FATAL EXCEPTION: …Run Code Online (Sandbox Code Playgroud)