2013-04-10 32 views
5

Tôi đã đọc một số câu hỏi liên quan về nó nhưng hầu hết trong số họ đã nhắm mục tiêu cuộc gọi chứ không phải SMS. Những gì tôi đã tìm thấy cho đến nay là:Kiểm tra xem điện thoại có thể gửi SMS

TelephonyManager manager = (TelephonyManager) context 
     .getSystemService(Context.TELEPHONY_SERVICE); 
if (manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) { 
    // I guess here are devices that are unable to send SMS 
} else { 
    // can send SMS 
} 

Đây có phải là thiết bị đúng với TelephonyManager.PHONE_TYPE_NONE không thể gửi SMS? Tôi thực sự không hiểu mô tả của TelephonyManager.PHONE_TYPE_NONE, đó là "Không có radio điện thoại".

Cảm ơn!

+1

Kiểm tra này ra: http: //stackoverflow.com/questions/3814258/what-is-the-procedure-to-detect-if-an-android-device-has-sms-send-capability –

Trả lời

2

Có với TelephonyManager.PHONE_TYPE_NONE bạn không thể gửi SMS.Một mạng vô tuyến bắt buộc phải gửi SMS. Tuy nhiên bạn có thể sử dụng một số sứ giả dựa trên IP như whats app, ebuddy trên chúng

nếu bạn thấy android.hardware.telephony (mà bạn chỉ định sử dụng sử dụng được-tính năng thẻ trong file manifest Android), bạn sẽ thấy gửi/đọc/ghi SMS được đề cập trong tính năng này.

Galaxy TAB example,Can't make calls still phone type comes as PHONE_TYPE_CDMA, vì vậy bổ sung kiểm tra bổ sung cho dòng số sẽ được yêu cầu đối với trường hợp như vậy, như thể hiện trong liên kết ở trên

+0

OK, đã nhận ngay bây giờ, cảm ơn! –

+2

Không kiểm tra số dòng, nó bị cấm bởi một số nhà khai thác mạng. Điện thoại của tôi với mạng Vodafone có số dòng trống và có thể gửi SMS. Cố gắng làm cho Intent SMS và tìm thấy, nếu có ứng dụng để xử lý nó được cài đặt. – Pihhan

2

Sử dụng đoạn mã sau:

Boolean canSendSMS (Context context) 
{ 
PackageManager pm = context.getPackageManager(); 
return (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY) || pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CDMA)) 
} 
Các vấn đề liên quan