Respostas:
Duas maneiras de conseguir isso.
1) Precisa iniciar o discador via código, sem a interação do usuário.
Você precisa Action_Dial
,
Use o código abaixo para abrir o Discador com o número especificado
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent);
O prefixo 'tel:' é necessário ; caso contrário, a seguinte exceção será lançada: java.lang.IllegalStateException: Não foi possível executar o método da atividade.
Action_Dial não requer nenhuma permissão.
Se você deseja iniciar a chamada diretamente sem a interação do usuário , você pode usar a ação Intent.ACTION_CALL
. Nesse caso, você deve adicionar a seguinte permissão no seu AndroidManifest.xml:
<uses-permission android:name="android.permission.CALL_PHONE" />
2) Precisa que o usuário clique na sequência Phone_Number e inicie a chamada.
android:autoLink="phone"
Você precisa usar o TextView com a propriedade abaixo.
android: autoLink = "phone" android: linksClickable = "true" uma propriedade textView
Você não precisa usar a intenção ou obter permissão dessa maneira.
Bastante tarde na resposta, mas se você tem um TextView
número no qual está mostrando o número de telefone, não precisa lidar com nenhuma intenção, basta usar o atributo XML android:autoLink="phone"
e o sistema operacional iniciará automaticamente uma ACTION_DIAL
Intenção.
Como o @ashishduh mencionado acima, o uso android:autoLink="phone
também é uma boa solução. Mas esta opção tem uma desvantagem, não funciona com todos os comprimentos de números de telefone. Por exemplo, um número de telefone de 11 números não funcionará com esta opção. A solução é prefixar seus números de telefone com o código do país.
Exemplo:
08034448845
não vai funcionar
mas +2348034448845
vai
<TextView
android:id="@+id/phoneNumber"
android:autoLink="phone"
android:linksClickable="true"
android:text="+91 22 2222 2222"
/>
É assim que você pode abrir o número atribuído à etiqueta EditText diretamente no discador.
Adicione permissão no manifesto:
<uses-permission android:name="android.permission.CALL_PHONE" />
Botão Make ou qualquer exemplo de widget: btnCall
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel: +98990*******");
startActivity(callIntent);
}
});