- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 S/O 上看到了其他几个与此相关的问题,但与我的问题最接近的那个似乎没有得到很多回复 ( Xiaomi MI device not picking image from Gallery )。希望这个问题有更好的运气。
我正在尝试从手机图库中选择一张图片,并将图片路径传递给另一个 Activity,在该 Activity 中为用户预览图片。
我已经在另外两台设备(Moto E 和 Coolpad?)上测试过了,它们似乎都运行良好。
(调试 Android 源代码似乎不是一个实用的选择。)
在主要 Activity 中,在 UI 触发器上,我使用以下代码启动图库选择器:
private void dispatchPickPictureIntent() {
Intent pickPictureIntent = new Intent(Intent.ACTION_PICK);
pickPictureIntent.setType("image/*");
startActivityForResult(pickPictureIntent, REQUEST_IMAGE_PICK);
}
我这样处理结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_PICK && resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
mCurrentPhotoPath = getRealPathFromURI(this, selectedImage);
launchUploadActivity();
}
}
private String getRealPathFromURI(Context context, Uri uri) {
Cursor cursor = null;
try {
String [] proj = {MediaStore.Images.Media.DATA};
cursor = context.getContentResolver().query(uri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null)
cursor.close();
}
}
一旦我将文件路径存储在全局变量 mCurrentPhotoPath
中,就会调用以下方法:
private void launchUploadActivity() {
Intent intent = new Intent(HomeActivity.this, UploadActivity.class);
intent.putExtra(getString(R.string.photo_path), mCurrentPhotoPath);
startActivityForResult(intent, REQUEST_IMAGE_UPLOAD);
}
即使在 Redmi 上,直到这里,一切都运行顺利。在 UploadActivity 的 onCreate 方法中,我成功收到了图像文件路径字符串。
但是,然后,我尝试预览图像:
private void previewPhoto() {
imageView.setVisibility(View.VISIBLE);
BitmapFactory.Options options = new BitmapFactory.Options();
// Avoid OutOfMemory Exception
options.inSampleSize = 8;
// This line returns a null, only on the Xiaomi device
final Bitmap bitmap = BitmapFactory.decodeFile(photopath, options);
imageView.setImageBitmap(bitmap);
}
现在我尝试调试这个问题,但是一旦我进入 BitmapFactory 的源代码,我就遇到了一个看似 Unresolved Android Studio 问题 (https://stackoverflow.com/a/40566459/3438497),这导致它毫无用处。
任何关于我如何从这里开始的指示都将不胜感激。
最佳答案
所以我能够将问题缩小到文件路径不正确。 Uri to filepath 函数并未在所有设备上获得预期的结果。
我使用了此处建议的方法:https://stackoverflow.com/a/7265235/3438497
并稍微调整了代码,以便在从图库中选取图像时,我直接使用图像的 Uri。
关于android - 从图库中选择图像不适用于 Redmi Note 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47977914/
我可以使用以下代码在三星设备上显示带有应用程序图标的徽章计数 - Intent intent = new Intent("android.intent.action.BADGE_COUNT
以下是我的代码: otp.OTPReceiver 是关联的 Br
以下是我的代码: otp.OTPReceiver 是关联的 Br
在 Redmi 设备中,google api 客户端无法将深层链接 url 解码为自定义 url。 这适用于 5.0,低于 5.0 则无效。任何帮助或建议将不胜感激。 最佳答案 小米手机有这方面的问题
我使用 USB 数据线连接了我的 Redmi 5A,并启用了开发者和 USB 调试,但是当我点击运行图标时,android studio 无法检测到我的设备。 我尝试解决问题,事件日志显示如下: 这里
我在 S/O 上看到了其他几个与此相关的问题,但与我的问题最接近的那个似乎没有得到很多回复 ( Xiaomi MI device not picking image from Gallery )。希望
据 Redmi 红米手机官方微博预告,明天的 Redmi 旗舰新品发布会上不仅有 Redmi K30 Pro 真旗舰,还会有「为更大视界而来」的 Redmi 智能电视新品。 图片来自 Redm
我想使用 requestPinAppWidget() 将小部件从应用程序放置到主屏幕方法。requestPinAppWidget()在许多设备中打开对话框以将小部件放置到主屏幕,但它在 中不起作用红米
小米 Redmi Note 3,当您从后台清除应用程序时,任何使用代码创建的自定义服务将被禁用,问题不会发生在三星和其他手机上,但会发生在类似的手机上。 最佳答案 您需要将您的应用程序添加到“ pro
我正在尝试更改通知图标,并且在模拟器中没问题: 这就是我想要的(在模拟器 API 级别 22(android 5.1.1)上测试)但是,当我在我的真实手机(带有 MIUI 8.0.1 的小米 Redm
我需要跟踪我的 Android 应用程序的安装引荐。它在大多数设备上运行良好。但在 Redmi 设备中,广播没有被触发。我用红米Note 4测试过 我已经通过 ADB 和 Play 商店对其进行了测试
我开发了一个安卓应用。除了 Redmi Note3 MIUI 手机外,它在所有安卓手机上都运行良好。它已安装但无法启动。我认为它甚至没有加载到 RAM 中,因为没有崩溃报告。 我没有收到类似“很遗憾,
ADB 无法识别我的 Redmi Note 设备。我正在使用 Windows 8 当我在 CMD 中使用以下命令时,亚行设备它正在显示 我按照以下链接中的程序进行操作, Using Hardware
9月29日消息今天京东平台,Redmi智能电视A32正式开启预售,9.30日10点抢购价799元。这是Redmi目前为止最便宜的智能电视。 IT之家报道,Redmi智能电视A32屏幕为32英寸,分
9 月 25 日消息 今天,一款名为 “Mi Watch Lite”的小米智能手表新品获得认证,从命名来看,小米 Watch Lite 的定位将低于目前在售的小米 Watch(1299 元),所以这
我正在尝试在我的小米红米 4 手机上调试我的 Android 应用程序。运行应用程序时出现此错误。 我做错了什么?请建议我。谢谢 最佳答案 在开发者选项中关闭 MIUI 优化。重新启动它并运行 and
您好,我想在我的下一个 Activity 中捕捉图像并对该图像做一些操作。我尝试在三星和 Moto G 中运行以下代码并且它工作正常。当我在 redmi note3 上尝试相同的代码时,点击后正确标记
我正在尝试将我的 react-native apk 上传到 redmi note 3,但在将 gradle 从 1.3.1 降级到 1.2.3 后遇到无法上传某些 apk 的错误我能够找到它,但在成功
我目前正在开发一个包含 Boot_Completed 广播接收器概念的应用程序。我已经在我的 Motorola Moto G 手机上测试了这个应用程序。该应用程序运行良好并显示 Toast 消息。但是
Redmi 官方今天宣布了 Redmi智能电视 A 系列新品,称即将开放预约。 官方并未公布 Redmi智能电视 A 系列新品的具体信息,但给出的海报显示该系列提供五种尺寸:32 英寸、43
我是一名优秀的程序员,十分优秀!