Android 安卓4.4短信:如何通过将我的应用设置为默认短信应用,将信息插入安卓4.4中的短信提供商

Android 安卓4.4短信:如何通过将我的应用设置为默认短信应用,将信息插入安卓4.4中的短信提供商,android,android-4.4-kitkat,Android,Android 4.4 Kitkat,我需要在4.4设备的短信提供商中插入1条信息,我的应用程序发送一次短信进行登录。所以我不想在android 4.4设备的默认sms providersent项目中看到此登录sms发送。根据这个博客 我们必须先将我们的应用程序设置为默认短信应用程序,然后再将消息插入短信提供商,或者为了避免将发送的消息1次插入用于登录短信提供商的短信。我使用以下代码将我的应用程序设置为默认短信应用程序 Intent intent = new Intent(context, Sms.Intents.ACTION_CH

我需要在4.4设备的短信提供商中插入1条信息,我的应用程序发送一次短信进行登录。所以我不想在android 4.4设备的默认sms providersent项目中看到此登录sms发送。根据这个博客

我们必须先将我们的应用程序设置为默认短信应用程序,然后再将消息插入短信提供商,或者为了避免将发送的消息1次插入用于登录短信提供商的短信。我使用以下代码将我的应用程序设置为默认短信应用程序

Intent intent = new Intent(context, Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Sms.Intents.EXTRA_PACKAGE_NAME, context.getPackageName());
startActivity(intent);

它不起作用。有谁能为我推荐满足上述要求的正确方法。

您需要更改您的舱单,以包含所需的接收者。虽然你没有使用它们,但是你需要定义博客中提到的系统,把你的应用程序看作是默认的短信候选。

从Android 4.4看到SMS提供商的变化。在这里,我已经通过了上面的链接并试图实现它,但是它不起作用。它应该向用户显示dialogsystem对话框,以便将应用程序更改为默认SMS应用程序,但这不会发生。
if (Build.VERSION.SDK_INT > 18) {
String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(SwippSettingsActivity.this);
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, "TEXT");
sendIntent.putExtra(Intent.EXTRA_DONT_KILL_APP, false);
if (defaultSmsPackageName != null) {
          sendIntent.setPackage(defaultSmsPackageName);
}
startActivity(sendIntent);
}