Звоните 911 в Android - PullRequest
       27

Звоните 911 в Android

11 голосов
/ 14 марта 2011

Я хочу позвонить по экстренному номеру с помощью Android SDK.

Я использую следующий код для вызова номера (911). Этот код прекрасно работает для всех номеров, кроме 911 (экстренный номер). Когда я использую 911, то он показывает экран номеронабирателя, который мне не нужен. Есть ли какая-либо процедура для вызова 911 без открытия номеронабирателя, или мы можем остановить пользователя, чтобы отредактировать номер на экране набора номера?

Uri callUri = Uri.parse("tel://911");
Intent callIntent = new Intent(Intent.ACTION_DIAL,callUri);
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_USER_ACTION);
startActivity(callIntent);

Ответы [ 3 ]

7 голосов
/ 14 марта 2011

Action_Dial откроет панель набора, Action_Call вызовет напрямую ..

Однако, цитата из ACTION_CALL :

Примечание: это намерение нельзя использовать для вызова экстренных служб.Однако приложения могут набирать номера экстренных служб, используя ACTION_DIAL.

7 голосов
/ 26 октября 2012

Приведенный код уже должен работать для этого, но вам нужно разрешение CALL_PHONE и CALL_PRIVILEGED для набора экстренных номеров без отображения клавиатуры.

Справочник по Android - разрешение манифеста CALL_PRIVILEGED

Как только это будет добавлено в манифест, вы сможете использовать тот же код, используя вместо этого ACTION_CALL для прямого набора:

Uri callUri = Uri.parse("tel://911");
Intent callIntent = new Intent(Intent.ACTION_CALL,callUri);
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_USER_ACTION);
startActivity(callIntent);
0 голосов
/ 14 марта 2011

Скажи Intent.ACTION_CALL insted of Intent.ACTION_DIAL, это вызовет номер, не показывая его на клавиатуре набора номера.

...