Danh mục

Bài giảng Phát triển ứng dụng cho các thiết bị di động: Phần 2

Số trang: 76      Loại file: pdf      Dung lượng: 6.71 MB      Lượt xem: 12      Lượt tải: 0    
tailieu_vip

Phí tải xuống: 1,000 VND Tải xuống file đầy đủ (76 trang) 0
Xem trước 8 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Nối tiếp phần 1, "Bài giảng Phát triển ứng dụng cho các thiết bị di động: Phần 2" tiếp tục trình bày những nội dung về lập trình ứng dụng android nâng cao; audio, video, và sử dụng camera; sensors phần cứng; phát triển ứng dụng đa nền tảng; giới thiệu các khung làm việc (Framework) phát triển ứng dụng đa nền tảng; xây dựng một ứng dụng đa nền tảng sử dụng một Framework;... Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Phát triển ứng dụng cho các thiết bị di động: Phần 2 BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Bài giảng: PHÁT TRIỂN ỨNG DỤNG CHO CÁC THIẾT BỊ DI ĐỘNG Biên soạn: Th.S. Nguyễn Hoàng Anh 2019 10 CHƯƠNG 3: LẬP TRÌNH ỨNG DỤNG ANDROID NÂNG CAO 3.1. MESSAGING VÀ NETWORKING 3.1.1. SMS Messaging SMS (Short Messaging Service) là công nghệ gửi tin nhắn ngắn giữa các điện thoại di động. Tin nhắn ngắn tồn tại dưới 2 dạng: dạng văn bản người dùng đọc được và dạng dữ liệu (như dạng nhị phân) dùng để truyền tín hiệu trao đổi giữa các ứng dụng. Android cung cấp 1 tập API SMS hỗ trợ lập trình chức năng nhắn tin ngắn. Có 2 cách cho phép gửi tin nhắn từ ứng dụng Android: 1/ Bằng cách sử dụng Intent, ứng dụng xây dựng sẽ gọi ứng dụng nhắn tin có sẵn trên điện thoại ; 2/ Bằng cách sử dụng lớp SmsManager do Android cung cấp để quản lý việc gửi nhận tin nhắn ngay trong chính ứng dụng xây dựng. Gửi tin nhắn SMS thông qua ứng dụng nhắn tin có sẵn trên điện thoại Sử dụng phương thức startActivity() với tham số truyền vào là đối tượng Intent có hành vi Intent.ACTION_SENDTO để gọi ứng dụng nhắn tin có sẵn trên điện thoại từ ứng dụng xây dựng như sau: Intent smsIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse('sms:55512345')); smsIntent.putExtra('sms_body', 'Press send to send me'); startActivity(smsIntent); Trong đó: dữ liệu Intent đặc tả số điện thoại nhận tin dưới dạng sms:schema và nội dung tin nhắn gửi đi “Press send to send me” được gán cho sms_body. Gửi tin nhắn trong chính ứng dụng • Cấp quyền SEND_SMS cho phép gửi tin nhắn ngay trong ứng dụng, trong AndroidManifest.xml như sau: • Tạo đối tượng SmsManager để xử lý việc gửi nhận tin nhắn: SmsManager smsManager = SmsManager.getDefault(); • Cài đặt lệnh gửi tin nhắn SMS trong chính ứng dụng: Gửi tin nhắn văn bản: Phương thức sendTextMessages() của SmsManager cho phép gửi tin nhắn SMS, phương thức này gồm 5 tham số: - destinationAddress: Số điện thoại nhận tin. - scAddress: Địa chỉ trung tâm dịch vụ tin nhắn(SMSC), giá trị này bằng null cho biết ứng dụng sử dụng dịch vụ mặc địch của SMSC. - text: Nội dung tin nhắn. - sentIntent: tham số Pending intent thứ nhất cho biết trạng thái gửi tin từ 133 bên gửi. - deliveryIntent: tham số Pending intent thứ 2 cho biết trạng thái nhận tin nhắn bởi bên nhận. String sendTo = '5551234'; String myMessage = 'Android supports programmatic SMS messaging!'; smsManager.sendTextMessage(sendTo, null, myMessage, null, null); Gửi tin nhắn dữ liệu dạng nhị phân Sử dụng sendDataMessage() của SmsManager cho phép gửi dữ liệu dạng nhị phân. Phương thức này có tham số truyền vào tương tự như phương thức sendTextMessage() nêu trên, đồng thời bổ sung 2 tham số: cổng lắng nghe kết nối dữ liệu (destination port) và 1 mảng byte chứa các dữ liệu nhị phân. Giám sát trạng thái gửi tin nhắn từ bên gửi tới bên nhận Để giám sát trạng thái tin nhắn gửi đi cần đăng kí Broadcast Receivers lắng nghe các sự kiện với giá trị đặc tả được truyền vào tham số Pending Intents của phương thức sendTextMessage(). Tham số Pending Intent đầu tiên cho biết trạng thái tin nhắn gửi đi từ bên gửi là thành công hay thất bại thông qua 1 trong các mã đặc tả sau: - Activity.RESULT_OK: cho biết tin nhắn gửi thành công. - SmsManager.RESULT_ERROR_GENERIC_FAILURE: cho biết quá trình truyền tin nhắn lỗi. - SmsManager.RESULT_ERROR_RADIO_OFF: cho biết tin nhắn không truyền đi do không có kết nối mạng. - SmsManager.RESULT_ERROR_NULL_PDU: lỗi PDU (protocol description unit). - SmsManager.RESULT_ERROR_NO_SERVICE: cho biết dịch vụ mạng hiện thời không sẵn sàng. Tham số Pending Intent thứ 2 cho biết trạng thái tin nhắn gửi đến bên nhận là thành công hay thất bại thông qua 1 trong 2 đặc tả sau: - Activity.RESULT_OK: cho biết bên nhận đã nhận được tin nhắn. - Activity.RESULT_CANCELED: cho biết bên nhận không nhận được tin nhắn. Việc cài đặt lệnh giám sát trạng thái gửi tin nhắn từ bên gửi tới bên nhận được thực hiện như sau: String SENT_SMS_ACTION = 'com.paad.smssnippets.SENT_SMS_ACTION'; String DELIVERED_SMS_ACTION = 'com.paad.smssnippets.DELIVERED_SMS_ACTION'; // Create the sentIntent parameter Intent sentIntent = new Intent(SENT_SMS_ACTION); PendingIntent sentPI = PendingIntent.getBroadcast(getApplicationContext(), 0, sentIntent, PendingIntent.FLAG_UPDATE_CURRENT) ; 134 // Create the deliveryIntent parameter Intent deliveryIntent = new Intent(DELIVERED_SMS_ACTION); PendingIntent deliverPI = PendingIntent.getBroadcast(getApplicationContext(), 0, deliveryIntent, PendingIntent.FLAG_UPDATE_CURRENT); //--- Register the BroadcastReceiver when the SMS is sent--- registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context _context, Intent _intent) { String resultText = 'UNKNOWN'; switch (getResultCode()) { case Activity.RESULT_OK: resultText = 'Transmission successful'; break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: resultText = 'Transmission failed'; break; case SmsManager.RESULT_ERROR_RADIO_OFF: resultText = 'Transmission faile ...

Tài liệu được xem nhiều: