2013-04-05 15 views
7

Tôi đang cố gắng sử dụng lớp Intent.Action. Tôi biết cách sử dụng ACTION_VIEW để hiển thị URL nhưng tôi muốn sử dụng số Intent.ACTION_DIAL để gọi khi ứng dụng được khởi chạy. Các tài liệu nói rằng bạn cần phải phân tích một URI vào một chuỗi và sau đó thêm nó vào mục đích? Tôi cố gắng này:Android Intent.ACTION_CALL, Uri

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

này không làm việc tôi nhận được một thông báo lỗi nói:

Thật không may, dự án có dừng lại. Tôi đã cố gắng để gỡ lỗi mã và nó dường như chỉ tôi đến dòng ý định không chắc chắn những gì tôi làm sai nếu tôi chỉ làm điều này nó hoạt động và sẽ trả về trình quay số.

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

thể trùng lặp của [Gọi ý định trong Android] (http://stackoverflow.com/questions/10510395/call-intent-in- android) – amadib

Trả lời

22

tel

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

Sử dụng Permission

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

thử này

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

thêm video này vào tệp AndroidManifest.xml của bạn

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

Để chỉ mở ứng dụng trình quay số (người dùng phải nhấn nút gọi bên trong ứng dụng trình quay số; không có điều khoản bổ sung cần thiết) sử dụng:

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

Để mở ứng dụng dialer và thực hiện cuộc gọi tự động (cần android.permission.CALL_PHONE) sử dụng:

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

thử này

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

thêm tệp này vào tệp AndroidManifest.xml của bạn

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

Hãy thử điều này cũng

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

Hãy thử điều này:

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

      startActivity(new Intent(Intent.ACTION_DIAL, 

        Uri.parse(toCall))); 
0

Nếu u đã thêm

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

Kiểm tra sự cho phép của cuộc gọi trên điện thoại cho bạn ứng dụng ur.

+1

Điều này phải là bình luận – ketan

1

Cách tiếp cận khác là thực hiện PendingIntent để được gọi sau. Điều này đặc biệt được sử dụng khi bạn muốn chuyển hướng người dùng trực tiếp đến cuộc gọi điện thoại từ một hành động thông báo.

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

Bạn có thể sử dụng nó trong thông báo như sau:

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