在 Android Oreo 中打开默认短信应用
Open default SMS app in Android Oreo
我无法打开 Android Oreo 中的默认短信应用程序。
我将此代码用于旧版本:
Intent oIntent = new Intent(Intent.ACTION_MAIN);
oIntent.addCategory(Intent.CATEGORY_DEFAULT);
oIntent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList");
startActivityForResult(oIntent, 12345);
它一直运行良好。但是对于奥利奥,我收到了这个错误:
Unable to find explicit activity class
{com.android.mms/com.android.mms.ui.ConversationList}; have you
declared this activity in your AndroidManifest.xml?
现在有了 Oreo,我想,用户可以 select 默认的消息传递应用程序。那么,有没有办法通过代码获取哪个应用程序?
那么我只需要这样做:
String sPackageManager = GetDefaultMessagingApp(); <-- This is what I need
Intent oIntent = getPackageManager().getLaunchIntentForPackage(sPackageManager);
startActivity(oIntent);
I used this code for older releases
该代码与 "open[ing] the default SMS app" 无关。这会尝试在特定应用程序 (com.android.mms
) 中启动特定 activity (com.android.mms.ui.ConversationList
)。值得注意的是:
- 设备不需要安装该应用程序
- 该应用程序的所有版本都不需要 activity,
- 不要求用户将此设置为他们的默认 SMS 客户端
- 没有要求用户要使用此 SMS 客户端,即使它不是默认设置
Call Telephony.Sms.getDefaultSmsPackage()
在 Android 4.4+ 上找出用户选择的默认 SMS 客户端。
我无法打开 Android Oreo 中的默认短信应用程序。 我将此代码用于旧版本:
Intent oIntent = new Intent(Intent.ACTION_MAIN);
oIntent.addCategory(Intent.CATEGORY_DEFAULT);
oIntent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList");
startActivityForResult(oIntent, 12345);
它一直运行良好。但是对于奥利奥,我收到了这个错误:
Unable to find explicit activity class {com.android.mms/com.android.mms.ui.ConversationList}; have you declared this activity in your AndroidManifest.xml?
现在有了 Oreo,我想,用户可以 select 默认的消息传递应用程序。那么,有没有办法通过代码获取哪个应用程序? 那么我只需要这样做:
String sPackageManager = GetDefaultMessagingApp(); <-- This is what I need
Intent oIntent = getPackageManager().getLaunchIntentForPackage(sPackageManager);
startActivity(oIntent);
I used this code for older releases
该代码与 "open[ing] the default SMS app" 无关。这会尝试在特定应用程序 (com.android.mms
) 中启动特定 activity (com.android.mms.ui.ConversationList
)。值得注意的是:
- 设备不需要安装该应用程序
- 该应用程序的所有版本都不需要 activity,
- 不要求用户将此设置为他们的默认 SMS 客户端
- 没有要求用户要使用此 SMS 客户端,即使它不是默认设置
Call Telephony.Sms.getDefaultSmsPackage()
在 Android 4.4+ 上找出用户选择的默认 SMS 客户端。