gpt4 book ai didi

Android:尝试在特定设备上发送彩信时偶尔会遇到 ActivityNotFoundException

转载 作者:行者123 更新时间:2023-11-29 16:19:41 26 4
gpt4 key购买 nike

我正在使用出色的 ACRA 库来报告用户在我的应用测试版中遇到的任何错误。到目前为止,它显示的是一些用户在发送彩信时遇到问题,而大多数用户则没有。 特别是我发现使用 Droid Bionic 设备的用户遇到了这个错误,但是当我在本地运行 Droid Bionic 模拟器时,我没有遇到问题。 我用来启动 MMS Activity 的代码是...

File imageFile = new File(getContext().getFilesDir() + File.separator + fileName);
Uri uri = Uri.fromFile(imageFile);
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity");
sendIntent.putExtra("sms_body", "");
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
sendIntent.setType("image/png");
getContext().startActivity(sendIntent);

我看到的错误 - 只是偶尔 - 是:

android.content.ActivityNotFoundException:无法找到显式 Activity 类 {com.android.mms/com.android.mms.ui.ComposeMessageActivity};您是否已在 AndroidManifest.xml 中声明此 Activity ?

我怀疑某些运营商可能修改了 Android 并覆盖/禁用了默认的 MMS Activity 。我真的没有很好的方法来测试它,因为我亲自测试过的所有物理设备和载体都没有这个代码的问题。正如我提到的,Droid Bionic 模拟器运行良好,但它是该领域出现问题的设备之一。

我想知道是否有人经历过类似的事情并且有建议的解决方法?或者,如果有人有一种在 Android 上发送彩信的方法适用于所有设备/运营商。

(目前我只是捕获异常并让用户知道我无法使用他们的设备发送彩信。)

附注我在另一个论坛上看到有人建议只删除 Intent 的类名。这样做的问题是,当你这样做时,所有类型的应用程序都说它们可以处理 Intent (例如 Evernote),而实际上我真的只想要 MMS 或什么都不想要。

最佳答案

写下 Intent

intent.setPackage("com.android.mms");

代替

intent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity");

关于Android:尝试在特定设备上发送彩信时偶尔会遇到 ActivityNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com