[英]Android: ActivityNotFoundException occasionally encountered when trying to send MMS on specific devices
我正在使用精彩的ACRA庫來報告用戶使用我的應用測試版所遇到的任何錯誤。 到目前為止它顯示的是一些用戶在發送MMS消息時遇到問題,而大多數用戶沒有。 特別是我發現使用Droid Bionic設備的用戶遇到了這個錯誤,但是當我在本地運行Droid Bionic仿真器時,我沒有遇到任何問題。 我用來啟動MMS活動的代碼是......
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:無法找到顯式活動類{com.android.mms / com.android.mms.ui.ComposeMessageActivity}; 你有沒有在AndroidManifest.xml中聲明這個活動?
我懷疑是某些運營商可能修改了Android並覆蓋/禁用了默認的MMS活動。 我真的沒有一個好的測試方法,因為我親自測試過的所有物理設備和運營商對此代碼沒有任何問題。 正如我所提到的,Droid Bionic仿真器工作正常,但它是該領域中存在問題的設備之一。
我想知道是否有人經歷過類似的事情並有建議的解決方法? 或者,如果某人有在Android上發送MMS的方法,該方法適用於所有設備/運營商。
(目前我只是抓住異常並讓用戶知道我無法使用他們的設備發送彩信。)
ps我在另一個論壇中看到有人建議只刪除意圖的類名。 問題在於,當你這樣做時,各種類型的應用程序都表示他們可以處理意圖(例如Evernote),而實際上我真的只想要彩信或什么都沒有。
用INTENT寫下來
intent.setPackage("com.android.mms");
代替
intent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity");
你可以做...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.