【问题标题】:How to set my application as default to receive SMS如何将我的应用程序设置为默认接收短信
【发布时间】:2015-02-10 17:40:13
【问题描述】:

我正在开发一个应用程序来发送和接收短信。我想添加将我的应用程序设置为默认应用程序的选项,例如 Google 环聊:

你有什么想法吗?非常感谢。

【问题讨论】:

标签: android sms message hangout


【解决方案1】:

如何将您的应用设置为默认消息应用?

Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, YOUR_PACKAGE_NAME);

如何检查您的应用是否为默认消息应用?

@TargetApi(Build.VERSION_CODES.KITKAT)
public static boolean isDefaultSmsApp(Context context) {
    return context.getPackageName().equals(Telephony.Sms.getDefaultSmsPackage(context));
}

从偏好活动添加 OnPreferenceClickListener 并在其中添加以下代码,首先检查它是否已经是默认消息传递应用程序,然后打开一个屏幕,用户可以在其中更改它,否则将当前应用程序设置为默认消息传递应用程序。

 if (isDefaultSmsApp(getActivity())) {
                        startActivityForResult(new Intent(Settings.ACTION_WIRELESS_SETTINGS), 0);
                    } else {
                    final String packageName = getActivity().getPackageName();
                        Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
                        intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName);
                        startActivityForResult(intent, 0);
                    }

【讨论】:

  • 不工作 :(。我在我的 MainActivity onCreate() 中使用了你的代码
  • 我想在库中运行上面的代码,但它不起作用,你能帮帮我吗?
  • @KrzysztofHuminski 你能提供一些关于问题的细节吗?
  • pulse7.net/android/… 我正在我的项目中关注本教程,但它不起作用。
  • 我得到了它的工作,我错过了 SendSms 活动,现在它正在工作。
猜你喜欢
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 2014-03-10
  • 1970-01-01
相关资源
最近更新 更多