2013-04-05 13 views
7

Sto tentando di utilizzare la classe Intent.Action. So come usare ACTION_VIEW per visualizzare un URL ma volevo usare il numero Intent.ACTION_DIAL per chiamare quando l'applicazione è stata lanciata. La documentazione dice che è necessario analizzare un URI in una stringa e poi aggiungerlo al Intento Ho provato questo:Android Intent.ACTION_CALL, Uri

Uri call = Uri.parse("7777777777");    
Intent surf = new Intent(Intent.ACTION_DIAL, call); 
startActivity(surf); 

Questo non funziona ricevo un messaggio di errore che dice:

Purtroppo, Progetto ha fermato. Ho provato a eseguire il debug del codice e sembra indicarmi la linea di intenti non sono sicuro di cosa sto facendo male se faccio solo questo funziona e fa apparire il dialer.

//Uri call = Uri.parse("7777777777");    
Intent surf = new Intent(Intent.ACTION_DIAL); 
startActivity(surf); 
+0

possibile duplicato del [Invito intenti in Android] (http://stackoverflow.com/questions/10510395/call-intent-in- android) – amadib

risposta

22

tel

String number = "23454568678"; 
    Intent intent = new Intent(Intent.ACTION_CALL); 
    intent.setData(Uri.parse("tel:" +number)); 
    startActivity(intent); 

UTILIZZO Il permesso

<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> 
1

provare questo

String no = "536171839"; 
Intent callintent = new Intent(android.intent.action.CALL); 
callintent.setData(Uri.parse("tel:" +no)); 
startActivity(callintent); 

aggiungere questo al file AndroidManifest.xml

13

Per aprire l'app di connessione (l'utente deve premere il pulsante di chiamata all'interno dell'app di composizione; senza ulteriori autorizzazioni necessarie) utilizzano:

String number = "7777777777"; 
Uri call = Uri.parse("tel:" + number);    
Intent surf = new Intent(Intent.ACTION_DIAL, call); 
startActivity(surf); 

per aprire l'applicazione dialer e fare automaticamente la chiamata (ha bisogno android.permission.CALL_PHONE) utilizzare:

String number = "7777777777"; 
Uri call = Uri.parse("tel:" + number);    
Intent surf = new Intent(Intent.ACTION_CALL, call); 
startActivity(surf); 
3

provare questo

String url="tel:777777777" 
if (url.startsWith("tel:")) 
{ 
Intent intent = new Intent(Intent.ACTION_DIAL, 
Uri.parse(url)); 
startActivity(intent); 
} 

aggiungi questo al tuo file AndroidManifest.xml

<uses-permission android:name="android.permission.CALL_PHONE" /> 
3

Prova questa anche

Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phno); 
startActivity(intent); 

Android Manifest

<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> 
2

Prova questo:

String toCall = "tel:" + number.getText().toString(); 

      startActivity(new Intent(Intent.ACTION_DIAL, 

        Uri.parse(toCall))); 
0

Se u hanno aggiunto

<uses-permission android:name="android.permission.CALL_PHONE" /> 

Controllare l'autorizzazione di chiamata sul telefono per te la tua domanda

+1

Questo dovrebbe essere un commento – ketan

1

Un altro approccio è quello di effettuare una chiamata PendingIntent in seguito. Questo è particolarmente utile quando si desidera reindirizzare l'utente direttamente alla telefonata da un'azione di notifica.

String number = "551191111113"; 
Intent intent = new Intent(Intent.ACTION_CALL); 
intent.setData(Uri.parse("tel:" +number)); 
PendingIntent pendingIntentForCall = PendingIntent.getActivity(mContext, 0 /* Request code */, intent,PendingIntent.FLAG_ONE_SHOT); 

Si può usare in notifica come segue:

 Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mContext) 
       .setContentTitle(title) 
       .setContentText(message) 
       .setStyle(new NotificationCompat.BigTextStyle().bigText(message)) 
       .setTicker(tickerText) 
       .setColor(Color.BLACK) 
       .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), R.mipmap.ic_directions_bus_white_48dp)) 
       .setSmallIcon(R.mipmap.ic_directions_bus_white_24dp) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .addAction(new NotificationCompat.Action(R.mipmap.ic_directions_bus_white_24dp,"Call to " + number,pendingIntentForCall)); 
Problemi correlati