添加直接拨号快捷方式到我的应用程序

时间:2010-08-05 00:35:30

标签: android android-intent shortcut

我正在创建一个可以启动其他应用的应用。我已经使用Spinners推出应用程序,但是,我还希望让用户能够从中启动直接拨号。

就像现在一样,我有“热键”按钮,用户可以配置。目前,当用户想要配置其中一个“热键”时,我使用微调器让他们从手机上所有已安装的应用程序中进行选择。对于初学者,如果他们能够在微调器中查看已安装的应用程序和快捷方式,我希望它能够将直接拨号映射到这些“热键”之一。

所以我的主要问题是,如何查找所有已定义的快捷方式并执行它们?如何在我的应用程序中创建自己的直接拨号?

2 个答案:

答案 0 :(得分:0)

直接拨号

startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + NUMBER)));

答案 1 :(得分:0)

这是一个简单的函数

public static void go2Call(Context context, String phoneNo) {

    Intent intent = null;
    Uri destUri = null;
    /*
     * http://developer.android.com/guide/appendix/g-app-intents.html
        <uses-permission id="android.permission.CALL_PHONE" />
        tel: phone_number
     */

    if(DEBUG)Log.d(TAG, "go2Call ->" + "phoneNo:"+phoneNo);
    phoneNo = PhoneNumberUtils.convertKeypadLettersToDigits(phoneNo);
    if(DEBUG)Log.d(TAG, "go2Call ->" + "phoneNo(normalized):"+phoneNo);


    if ( !TextUtils.isEmpty(phoneNo) ) {

        destUri = Uri.parse("tel:" + phoneNo);
    }

    if (destUri!=null) {
        intent = new Intent( Intent.ACTION_VIEW, destUri );
    }

        if ( intent!=null && isIntentAvailable(context, intent) ) {
            context.startActivity(intent);
        }
        else {
            // TODO: display error msg
            Log.w(TAG, "error pr intent not available! ->" + "phoneNo:"+phoneNo);
        }
    }