2013-01-18 37 views
6

tôi đã tạo ra một dialer đơn giản để nhanh chóng giúp tôi quay số dịch vụ cung cấp dịch vụ di động như kiểm tra số dư không khí, nhận cài đặt internet từ nhà cung cấpAndroid: Simple USSD Dialer Application

//example 
phoneNum[1] = "*144#"; 

Khi tôi bấm vào một nút để kiểm tra cân bằng nó nói Dialing

Dialing *144 

* 144 và thông báo băm không có nhưng nó sẽ hoạt động như mã ussd nếu băm có sẵn và trả lại số dư thay vì gọi. Làm thế nào để tôi thêm băm vào mảng?

Trả lời

10

Bạn nên thoát khỏi # biểu tượng với% 23

//example phoneNum[1] = "*144";

String encodedHash = Uri.encode("#"); 
startActivity(new Intent("android.intent.action.DIAL", 
       Uri.parse("tel:"+ phoneNum[1]+ encodedHash))); 

Đối với đánh bắt các phản ứng, bạn nên thử nghiệm với

startActivityForResult(new Intent("android.intent.action.CALL", 
        Uri.parse("tel:"+ phoneNum[1]+ encodedHash)), 1); 
@Override 
protected void onActivityResult(int requestCode, int resultCode,Intent data) { 
    view.setText("USSD: " + requestCode + " " + resultCode + " " + data); 
} 

và xem những gì sẽ có lợi nhuận bạn .

+0

Cảm ơn điều này, nếu tôi muốn quay số trực tiếp mà không cần đến cửa sổ quay số thì sao? – Alphy

+0

Ý của bạn là gì? Khi bạn đặt 'startActivityForResult (..)' trong 'onClick' của nút, nó sẽ tự động quay nó. –

+0

có, quay số tự động và trả về kết quả – Alphy