解決方案類似: Android項目實戰(四十):Andoird 7.0+ 安裝APK適配 解決方法: 一、在AndroidManifest.xml 文件中添加 四大組件之一的 <provider> 註意這裡的 android :authorities 屬性的值 中的 com.xxx.xxxx 是你的 ...
解決方案類似:
Android項目實戰(四十):Andoird 7.0+ 安裝APK適配
解決方法:
一、在AndroidManifest.xml 文件中添加 四大組件之一的 <provider>
<!-- 適配7.0 apk安裝 --> <provider android:name="android.support.v4.content.FileProvider" android:authorities="你的包名.fileprovider" android:grantUriPermissions="true" android:exported="false"> <!--元數據--> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider>
註意這裡的 android :authorities 屬性的值 中的 com.xxx.xxxx 是你的包名,不可隨意填寫
二、res 目錄下 建一個xml 文件,並新建xml文件file_paths.xml
註意文件名要和第一步中的 resource 屬性的值一致
內容為:
<?xml version="1.0" encoding="utf-8"?> <paths> <external-path path="." name="download"/> </paths>
三、根據機型的Android系統級別執行不同的安裝調用相機Intent代碼
註意,根據系統版本執行不同代碼,7.0以下調用7.0+的代碼會報錯,7.0+的調用7.0以下的會報錯。
File cameraFile = new File(PathUtil.getInstance().getImagePath(), + System.currentTimeMillis() + ".jpg"); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ intent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(getActivity(),"你的包名.fileprovider", cameraFile)); }else { intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(cameraFile)); } startActivityForResult(intent, REQUEST_CODE_CAMERA);
作者:聽著music睡
出處:http://www.cnblogs.com/xqxacm/
Android交流群:38197636
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。