Android-从更改默认SMS应用程序对话框获取结果

纳赛尔

我正在恢复在KITKAT上的SMS。参考本文,我添加了将我的应用程序设置为SMS的默认应用程序所需的内容。在清单文件中添加所有必需的东西之后,我编写了以下代码:

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
    mDefaultSmsApp = Telephony.Sms.getDefaultSmsPackage(mContext);
    Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
    intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, mContext.getPackageName());
    mContext.startActivity(intent);
}

在此处输入图片说明

上面的代码显示了此对话框,但是我无法从此活动/对话框中获得结果,或者用户单击“是”或“否”,因为我想添加侦听器或获取任何表示用户单击这些按钮的代码。谢谢。

迈克M.

一种方法是使用激发Intent startActivityForResult(),然后检查resultCodeinonActivityResult()方法。请注意,我已更改示例中的代码以在活动的上下文中运行。

private static final int DEF_SMS_REQ = 0;
private String mDefaultSmsApp;

...

    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
    {
        mDefaultSmsApp = Telephony.Sms.getDefaultSmsPackage(this);

        if (!getPackageName().equals(mDefaultSmsApp))
        {
            Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
            intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getPackageName());
            startActivityForResult(intent, DEF_SMS_REQ);
        }
    }       

...

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    switch (requestCode)
    {
        case DEF_SMS_REQ:           
            boolean isDefault = resultCode == Activity.RESULT_OK;
            ...
    }
}

如下面的评论中所述,显然检查结果代码不是100%可靠的。较安全的检查方法是将您应用的程序包名称与中的当前默认包名称进行比较onActivityResult()完全不需要检查结果代码,就像注释显示中链接的答案一样。

String currentDefault = Sms.getDefaultSmsPackage(this);
boolean isDefault = getPackageName().equals(currentDefault);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android上获取默认警报对话框有黑色主题

来自分类Dev

更改Android对话框的主题

来自分类Dev

如何在应用程序运行且可见时将Android通知显示为对话框警报

来自分类Dev

登录Android应用程序时,Facebook进度对话框微调框

来自分类Dev

如何更改android默认打印对话框的纸张大小?

来自分类Dev

Android Facebook SDK 4.0.1中应用程序请求对话框的新实现是什么

来自分类Dev

Android棉花糖中的屏幕方向更改时的权限对话框使应用程序崩溃

来自分类Dev

在Android上设置为默认SMS应用程序时,是否需要写入SMS Provider?

来自分类Dev

更改对话框Android的颜色

来自分类Dev

如何更改Android应用程序的默认字体?

来自分类Dev

我的应用程序不会显示在MIME类型为video / *的android.intent.action.VIEW的选择器对话框中,仅在棉花糖上

来自分类Dev

更改对话框文字的Android

来自分类Dev

如何在应用程序android中的任何活动之上显示警报对话框

来自分类Dev

Android启动应用程序显示“可以修改系统设置”对话框

来自分类Dev

如果安装本机应用程序,则使用Facebook最新的SDK登录,然后在Android中未打开对话框

来自分类Dev

无法更改android对话框的大小

来自分类Dev

运行进度对话框,直到在Android应用程序中找不到GPS ID

来自分类Dev

如何在Android上获取默认警报对话框有黑色主题

来自分类Dev

如何在页面完全加载之前使Android Webview应用程序消失的进度对话框?

来自分类Dev

Android Studio-更改默认的应用程序布局加载

来自分类Dev

如何在Android应用程序上没有活动(或在收到服务通知的情况下)打开自定义对话框

来自分类Dev

从微调框获取项目时,应用程序崩溃-android

来自分类Dev

android菜单按钮显示对话框,以确认从应用程序退出

来自分类Dev

在Android上设置为默认SMS应用程序时,是否需要写入SMS Provider?

来自分类Dev

没有本地应用程序或对话框的Android Facebook登录

来自分类Dev

如何在应用程序android中的任何活动之上显示警报对话框

来自分类Dev

Android默认付款应用程序对话框缺少应用程序图标

来自分类Dev

在导航菜单内的 Android 应用程序中创建警报对话框以注销

来自分类Dev

在 android 应用程序中扩展底部工作表对话框

Related 相关文章

  1. 1

    如何在Android上获取默认警报对话框有黑色主题

  2. 2

    更改Android对话框的主题

  3. 3

    如何在应用程序运行且可见时将Android通知显示为对话框警报

  4. 4

    登录Android应用程序时,Facebook进度对话框微调框

  5. 5

    如何更改android默认打印对话框的纸张大小?

  6. 6

    Android Facebook SDK 4.0.1中应用程序请求对话框的新实现是什么

  7. 7

    Android棉花糖中的屏幕方向更改时的权限对话框使应用程序崩溃

  8. 8

    在Android上设置为默认SMS应用程序时,是否需要写入SMS Provider?

  9. 9

    更改对话框Android的颜色

  10. 10

    如何更改Android应用程序的默认字体?

  11. 11

    我的应用程序不会显示在MIME类型为video / *的android.intent.action.VIEW的选择器对话框中,仅在棉花糖上

  12. 12

    更改对话框文字的Android

  13. 13

    如何在应用程序android中的任何活动之上显示警报对话框

  14. 14

    Android启动应用程序显示“可以修改系统设置”对话框

  15. 15

    如果安装本机应用程序,则使用Facebook最新的SDK登录,然后在Android中未打开对话框

  16. 16

    无法更改android对话框的大小

  17. 17

    运行进度对话框,直到在Android应用程序中找不到GPS ID

  18. 18

    如何在Android上获取默认警报对话框有黑色主题

  19. 19

    如何在页面完全加载之前使Android Webview应用程序消失的进度对话框?

  20. 20

    Android Studio-更改默认的应用程序布局加载

  21. 21

    如何在Android应用程序上没有活动(或在收到服务通知的情况下)打开自定义对话框

  22. 22

    从微调框获取项目时,应用程序崩溃-android

  23. 23

    android菜单按钮显示对话框,以确认从应用程序退出

  24. 24

    在Android上设置为默认SMS应用程序时,是否需要写入SMS Provider?

  25. 25

    没有本地应用程序或对话框的Android Facebook登录

  26. 26

    如何在应用程序android中的任何活动之上显示警报对话框

  27. 27

    Android默认付款应用程序对话框缺少应用程序图标

  28. 28

    在导航菜单内的 Android 应用程序中创建警报对话框以注销

  29. 29

    在 android 应用程序中扩展底部工作表对话框

热门标签

归档