2013-04-05 7 views
7

Próbuję użyć klasy Intent.Action. Wiem, jak używać ACTION_VIEW do wyświetlania adresu URL, ale chciałem użyć numeru telefonu Intent.ACTION_DIAL podczas uruchamiania aplikacji. Dokumentacja mówi, trzeba analizować URI na ciąg znaków, a następnie dodać go do intencyjny Próbowałem to:Android Intent.ACTION_CALL, Uri

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

To nie działa otrzymuję komunikat o błędzie mówiąc:

Niestety Projekt ma zatrzymany. Próbowałem debugować kod i wydaje mi się, że wskazałem na linię intencyjną, nie wiedząc, co robię źle, jeśli po prostu to zrobię, działa i wywołuje dialer.

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

możliwym duplikat (http://stackoverflow.com/questions/10510395/call-intent-in- [woli w Androidzie CALL] android) – amadib

Odpowiedz

22

tel

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

Zastosowanie Pozwolenie

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

spróbować

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

dodać do pliku AndroidManifest.xml

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

Aby otworzyć aplikację do wybierania numerów (użytkownik musi nacisnąć przycisk połączenia w aplikacji do wybierania numerów; żadne dodatkowe uprawnienia potrzebne) używają:

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

Aby otworzyć aplikację dialera i wykonać połączenie automatycznie (potrzebuje android.permission.CALL_PHONE) używać:

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

spróbować tej

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

dodaj to do pliku AndroidManifest.xml

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

Spróbuj również

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

Android Oczywisty

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

Spróbuj tego:

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

      startActivity(new Intent(Intent.ACTION_DIAL, 

        Uri.parse(toCall))); 
0

Jeśli u dodałem

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

Sprawdź zgody rozmowy przez telefon dla yo ur wniosku.

+1

To powinien być komentarz – ketan

1

Innym podejściem jest wykonanie późniejszego wywołania PendingIntent. Jest to szczególnie przydatne, gdy użytkownik chce przekierować użytkownika bezpośrednio do rozmowy telefonicznej z działania powiadomienia.

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); 

Można go używać w zgłoszeniu następujące:

 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)); 
Powiązane problemy