Android KitKat 版本之后,我们可以通过“Telephony.sms.getDefaultSmsPackage(context);”找到默认的短信包名称。但是如何在 KitKat 版本之前获得包名称?

最佳答案

请引用这个http://android-developers.blogspot.in/2013/10/getting-your-sms-apps-ready-for-kitkat.html

根据文档“Android 4.4 (KitKat) 公开了现有的 API,并添加了默认 SMS 应用程序的概念,用户可以在系统设置中进行选择。”

在您的代码中,您应该将其作为单独的情况处理

         Intent smsIntent;
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(context); //Need to change the build to API 19
            smsIntent = new Intent(Intent.ACTION_SEND);
            smsIntent.setType("text/plain");
            smsIntent.putExtra(Intent.EXTRA_TEXT,"content");
            //if no default app is configured, then choose any app that support this intent.
            if (defaultSmsPackageName != null) {
                smsIntent.setPackage(defaultSmsPackageName);
            }
        } else {
            smsIntent = new Intent(Intent.ACTION_VIEW);
            smsIntent.setType("vnd.android-dir/mms-sms");
            smsIntent.putExtra("address", phoneNumber);
            smsIntent.putExtra("sms_body","body");
        }

10-06 01:25