我无法在android oreo(8.0)api 26中保存图像文件.
代码在api级别25(7.0)中完美运行,我在文档" Android 8.0行为更改 "中没有找到任何更改
这是我的代码
String root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString();
File myrootDir = new File(root);
if (!myrootDir.exists()) {
myrootDir.mkdir();
}
File myDir = new File(root + "/Myimages");
if (!myDir.exists()) {
myDir.mkdir();
}
final String fname = System.currentTimeMillis()+"myimage.png";
File file = new File(myDir, fname);
if (file.exists())
file.delete();
try {
FileOutputStream out = new FileOutputStream(file);
b.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
}catch (Exception e){
Log.e("MYAPP", "exception", e);
}
Run Code Online (Sandbox Code Playgroud)
异常是FileNotFoundException,没有这样的文件或目录.(但为什么不在android n?)
java.io.FileNotFoundException: /storage/emulated/0/Pictures/Myimages/1513151272243myimage.png (No such file or directory)
12-13 13:17:52.243 5839-5839/com.package.package W/System.err: …Run Code Online (Sandbox Code Playgroud) 嗨,我正在为应用内订阅使用新的Play Billing Library。 https://developer.android.com/google/play/billing/billing_library.html
一切工作完美,并能够订阅该产品。但是我没有找到任何方法来检查订阅的购买状态。我的意思是说它是活跃的还是过期的。
在文档中显示:然后,您可以在Purchase对象上调用各种方法以查看有关该项目的相关信息,例如其购买状态或时间。
但是购买对象中没有购买状态方法,请检查以下链接 https://developer.android.com/reference/com/android/billingclient/api/Purchase.html
也看一下这部影片:https : //www.youtube.com/watch?v=9chvh1WYCvw&feature=youtu.be&t=301
如何检查购买状态?
android in-app-purchase in-app-billing google-play play-billing-library
从 android 10 开始,访问媒体文件有一些变化。通过文档https://developer.android.com/training/data-storage/shared/media我已经能够将媒体内容加载到位图中,但我没有得到方向信息。我知道图像的位置信息有一些限制,但是这些 exif 限制是否也会影响方向信息?如果有任何其他方法可以获得图像的方向信息,请告诉我。下面给出了我使用的代码(它总是返回 0 - 未定义的值)。谢谢你。
ContentResolver resolver = getApplicationContext().getContentResolver();
try (InputStream stream = resolver.openInputStream(selectedFileUri)) {
loadedBitmap = BitmapFactory.decodeStream(stream);
ExifInterface exif = new ExifInterface(stream);
orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
}
Run Code Online (Sandbox Code Playgroud)