Добавление ярлыков прямого набора в мое приложение - PullRequest
4 голосов
/ 05 августа 2010

Я создаю приложение, которое может запускать другие приложения. Я хорошо запускаю приложения с помощью Spinners, однако я также хотел бы дать пользователю возможность запускать с него прямые наборы.

Как сейчас, у меня есть кнопки «горячих клавиш», которые пользователь может настроить. В настоящее время, когда пользователь хочет настроить одну из этих «горячих клавиш», я использую спиннер, чтобы он мог выбирать из всех установленных приложений на своем телефоне. Для начала мне бы хотелось, чтобы они могли просматривать как установленные приложения, так и ярлыки на счетчике, чтобы они могли сопоставить прямой набор с одной из этих «горячих клавиш».

Итак, мои основные вопросы: как мне найти все доступные ярлыки и выполнить их, и как я могу создать свои собственные прямые наборы в моем приложении?

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

вот простая функция для этого

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);
        }
    }
0 голосов
/ 28 мая 2011

Для набора номера напрямую

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