Запуск Skype из программы Programmatically & Pass Number – Android

Попытка запустить и пройти tel. нет. скайп по этому коду из моего приложения:

PackageManager packageManager = getPackageManager(); Intent skype = packageManager.getLaunchIntentForPackage("com.skype.raider"); skype.setData(Uri.parse("tel:65465446")); startActivity(skype); 

Skype запущен, но он не может поймать номер.

6 Solutions collect form web for “Запуск Skype из программы Programmatically & Pass Number – Android”

Этот код работает для меня, чтобы начать звонок между двумя пользователями Skype:

 Intent sky = new Intent("android.intent.action.VIEW"); sky.setData(Uri.parse("skype:" + user_name)); startActivity(sky); 

Чтобы найти это (и другие), используйте apktool, чтобы открыть APK Skype. Посмотрите на AndroidManifest.xml, и вы увидите все фильтры намерений, о которых они знают. Если вы хотите вызвать один из этих фильтров намерений, вам нужно сделать намерение, соответствующее одному. Вот фильтр намерений, который соответствует приведенному выше коду:

       

Вы получаете категорию «android.intent.category.DEFAULT» бесплатно от {{new Intent ()}}, поэтому остается только установить действие и URI.

Фильтр намерений для tel: URI выглядит следующим образом:

       

Итак, вы настроились на действие и дали намерению tel: URI и «правильная вещь». Что происходит, так это то, что Android находит правильного провайдера для tel: URI. Он может получить вход пользователя для выбора между телефоном и Skype. Приоритет для Skype для обработки tel: URI ноль, который является самым низким. Поэтому, если приложение «Телефон» установлено, оно, вероятно, получит намерение.

Если вы хотите вызвать видеовызов, вам придется добавить «? Call & video = true» в свой URI Skype.

 Intent skypeVideo = new Intent("android.intent.action.VIEW"); skypeVideo.setData(Uri.parse("skype:" + "" + "?call&video=true")); startActivity(skypeVideo); 

Более подробную информацию о URI Skype можно найти по адресу: http://developer.skype.com/skype-uris-program/skype-uri-ref

РЕДАКТИРОВАТЬ :

Прямой вызов Skype без каких-либо намерений:

Если вам нужен прямой вызов skype без каких-либо намерений, добавьте эти строки в файл манифеста …

                

Используйте этот код для Skype версии 2:

 Intent skype_intent = new Intent("android.intent.action.VIEW"); skype_intent.setClassName("com.skype.raider", "com.skype.raider.Main"); skype_intent.setData(Uri.parse("skype:skypeusername")); startActivity(skype_intent); 

С помощью этого кода вы будете получать активность в Skype, а не активность вызывающего абонента. Таким образом, вам нужно найти намерение для активности, у которой есть фильтр намерений для действия CALL. Но более понятно, что Skype использует действие android.intent.action.CALL_PRIVILEGED , поэтому найдите этот фильтр. Только для информации о том, что активность вызывающего абонента – cmp=com.skype.raider.contactsync.ContactSkypeOutCallStartActivity .

Skype 2.X имеет значительно отличающийся манифест, а затем Skype 1.X. Там нет ContactSkypeOutCallStartActivity. Новый манифест содержит код:

  ...      ...  

Поэтому вы должны написать:

 Intent skype_intent = new Intent("android.intent.action.CALL_PRIVILEGED"); skype_intent.setClassName("com.skype.raider", "com.skype.raider.Main"); skype_intent.setData(Uri.parse("tel:65465446")); context.startActivity(skype_intent); 

Обратите внимание, что этот метод не позволяет вам запускать звонок / чат с помощью Skype. Он работает только с Skype Out.

Я обнаружил, что код выше не работает …

 Intent i = packageManager.getLaunchIntentForPackage("com.skype.raider"); // i.setAction("android.intent.cation.CALL_PRIVILEGED"); // i.setClassName("com.skype.raider", "com.skype.raider.contactsync.ContactSkypeOutCallStartActivity"); // i.setData(Uri.parse("tel:5551234")); startActivity(i); 

Записанные строки либо прекратили его функционирование, либо ничего не сделали!

Представленный код вызовет Skype и прибудет на страницу, где вы можете выбрать Skype-контакты. Больше информации будет больше всего приветствовать. Джон

  • Как отключить изменение ориентации на Android?
  • Доступ к SharedPreferences с помощью статических методов
  • Android. Фрагмент getActivity () иногда возвращает null
  • Как выйти из приложения Android с помощью кода?
  • Режим запуска «single top» для Android и onNewIntent
  • Как программно открыть меню опций?
  • Активность kill / onCreate вызвана после съемки с помощью намерения
  • Попытка UNINSTALL_SHORTCUT, но ярлык не исчезнет
  • Начать работу внутри onReceive BroadcastReceiver
  • Использование активности камеры в Android
  • Ошибка при запуске приложения для Android. Не удалось инициализировать эмуляцию OpenglES, используйте «-gpu off», чтобы отключить ее
  • Interesting Posts

    Один клик, чтобы принять приглашение на встречу в Outlook 2010

    Вам нужна транзакция базы данных для чтения данных?

    ASP.net Получение ошибки «Доступ к пути запрещен» при попытке загрузить файлы на мой веб-сервер Windows Server 2008 R2

    что именно делает метод Activity.finish ()?

    Selenium 2.0b3 IE WebDriver, нажмите, не стреляйте

    Назначение объектов в VB6

    Angular2 вложенная форма с шаблоном

    Почему std :: function не равнозначно сопоставимо?

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

    Windows 7 пустой экран DVI

    Есть ли все-таки, чтобы предотвратить ошибку «Outlook использует старый файл .ost»?

    Как найти источник утечки памяти в Windows 7?

    Как бороться с проблемой часового пояса при хранении дат в utc с использованием mongod?

    Почему важно переопределить GetHashCode, когда метод Equals переопределен?

    Некоторые системные файлы Windows не могут быть удалены

    Давайте будем гением компьютера.