简体   繁体   English

Android 4.4 SMS:如何通过将我的应用程序设置为默认的短信应用程序将消息插入android 4.4中的SMS提供程序

[英]Android 4.4 SMS: How to insert message into SMS provider in android 4.4 by setting my app as default sms app

I need to insert 1 message in SMS provider in 4.4 device and my app sends one time sms for login. 我需要在4.4设备的SMS提供程序中插入1条消息,并且我的应用发送一次短信进行登录。 So i don't want to see this login sms sent in default sms provider(sent items) in android 4.4 device. 因此,我不想在android 4.4设备中以默认短信提供程序(已发送邮件)发送此登录短信。 As per this blog found here 根据此博客在这里找到

We have to set our app as default sms app before insert message to SMS provider or in order to avoid inserting sent message(1 time sms used for login)to sms provider. 我们必须在将消息插入到SMS提供商之前将我们的应用程序设置为默认的短信应用程序,或者避免将已发送的消息(用于登录的1次短信)插入到短信提供商。 I have used following code to set my app as default sms app. 我已使用以下代码将我的应用设置为默认的短信应用。

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

It is not working. 它不起作用。 Can anybody please suggest me the right approach for the above requirement. 有人可以为我提出上述要求的正确方法吗?

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);
}

You need to change your manifest to include the needed receivers. 您需要更改清单以包括所需的接收者。 Though you're not using them you need to define the receivers mentioned in that blog for the system to consider your app as a default sms candidate. 尽管您没有使用它们,但您需要定义该博客中提到的接收者,以使系统将您的应用视为默认的短信候选者。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM