我在运行Android 11的CAT S42上拍摄照片时遇到了问题。我的代码在旧手机上运行良好,所以我怀疑这是Android版本的问题。以下代码创建了JPG文件,但它总是零字节:
private void startCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getPackageManager()) != null) {
File mNewPhoto = new File(getFilesDir(), "data-input-image.jpg");
mNewPhoto.delete();
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mNewPhoto));
startActivityForResult(intent, 1);
}
}
我一直在尝试使用不同的保存位置和权限,但无法修复。
我在清单中获得了这些权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
2条答案
按热度按时间xtfmy6hx1#
不要使用Uri.fromFile()获取URI。
而是使用文件提供者.getUriForFile()。
dgenwo3n2#