Broadcast Receivers: dùng để nhận các tín hiệu từ hệ thống hoặc trao đổi dữ liệu các ứng dụng khác Chắc hẳn nhiều bạn mới học lập trình Android mà có tính tò mò thì sẽ tự hỏi “khi có một tin nhắn đến phần mềm làm sao có thể biết được tin nhắn đến” hay là làm sao để biết có cuộc gọi đến? đang sạc pin hay đã rút sạc,…. Android cung cấp riêng một thành phần Broadcast Receiver dùng để nhận biết các thông tin đó từ hệ điều hành. 
Có sau hai bước quan trọng để làm cho Broadcast Receiver làm việc theo ý muốn
  • Tạo Broadcast Receiver.
  • Việc đăng ký Broadcast Receiver

Tạo Broadcast Receiver

Một ứng dụng muốn thu nhận tín hiệu thì cần thực hiện như một lớp con của lớp Broadcast Receiver  và trong phương thức onReceive () mà mỗi tin nhắn được nhận như là một tham số Intent đối tượng.
public  class  MyReceiver  extends  BroadcastReceiver  { 
   @Override 
   public  void onReceive ( Context context ,  Intent intent )  { 
      Toast . makeText ( context ,  "Intent . Phát hiện " ,  bánh mì nướng . LENGTH_LONG .) Chương trình (); 
   } 
}

Việc đăng ký Broadcast Receiver

Một ứng dụng muốn thu nhận tín hiệu thì phải đăng ký trong file AndroidManifest.xml . Hãy xem ví dụ đăng ký MyReceiver cho hệ thống để tạo sự kiện có tên ACTION_BOOT_COMPLETED khi hệ thống Android đã hoàn thành quá trình khởi động.
phát sóng

BROADCAST-RECEIVER

<application 
   android:icon = "@drawable/ic_launcher" 
   android:label = "@string/app_name" 
   android:theme = "@style/AppTheme"  > 
   <receiver  android:name = "MyReceiver" >
   
      <intent-filter> 
         <action  android: tên = "android.intent.action.BOOT_COMPLETED" > 
         </ action> 
      </ intent-filter>
   
   </ nhận> 
</ application>
Bây giờ mỗi khi thiết bị Android của bạn được khởi động, nó sẽ bị chặn bởi Broadcast Receiver MyReceiver và thực hiện bởi onReceive () 
Có một số hệ thống tạo ra các sự kiện được định nghĩa trong lớp Intent . Bảng dưới đây liệt kê một số sự kiện hệ thống quan trọng.
Liên tục tổ chức sự kiệnSự miêu tả
android.intent.action.BATTERY_CHANGEDphát dữ liệu về tình trạng, mức độ, và các thông tin khác về pin.
android.intent.action.BATTERY_LOWChỉ ra tình trạng pin thấp trên thiết bị.
android.intent.action.BATTERY_OKAYTình trạng pin ổn định
android.intent.action.BOOT_COMPLETEDĐiều này được phát sóng một lần, sau khi hệ thống đã hoàn tất khởi động.
android.intent.action.BUG_REPORTHiển thị hoạt động cho báo cáo lỗi.
android.intent.action.CALLThực hiện một cuộc gọi đến một người nào đó theo quy định của dữ liệu.
android.intent.action.CALL_BUTTONNgười dùng nhấn nút "gọi" để đi đến trình quay số hoặc giao diện người dùng phù hợp khác để đặt một cuộc gọi.
android.intent.action.DATE_CHANGEDThay đổi ngày
android.intent.action.REBOOTKhởi động lại thiết bị

Tùy chỉnh Broadcasting Intents 

Nếu bạn muốn một ứng dụng tạo ra và gửi các thông điệp thì bạn phải tạo ra và gửi những ý đồ bằng cách sử dụng các phương thức sendBroadcast() bên trong lớp hoạt động của bạn. Nếu bạn sử dụng phương pháp sendStickyBroadcast(Intent) có nghĩa là Intent bạn đang gửi ra xung quanh sau khi broadcast hoàn tất.
public  void broadcastIntent ( View view ) 
{ 
   Intent intent =  new  Intent (); 
   intent . setAction ( "com.tutorialspoint.CUSTOM_INTENT" ); 
   sendBroadcast ( intent ); 
}
com.tutorialspoint.CUSTOM_INTENT cũng có thể được đăng ký theo cách tương tự như chúng ta đã đăng ký hệ thống bình thường.
package com.example.My Application;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class MyReceiver extends BroadcastReceiver {
   @Override
   public void onReceive(Context context, Intent intent) {
      Toast.makeText(context, "Intent Detected.", Toast.LENGTH_LONG).show();
   }
}

Thí dụ

Ví dụ này sẽ giải thích cho bạn làm thế nào để tạo ra Broadcast Receiver . Một khi bạn đã quen thuộc với mục đích tùy chỉnh, sau đó bạn có thể lập trình ứng dụng của bạn để điều khiển hoạt động của hệ thống. Vì vậy, hãy làm theo các bước sau để sửa đổi các ứng dụng Android với ứng dụng Hello World 
Bước điSự miêu tả
1Bạn sẽ sử dụng Android studio để tạo ra một ứng dụng Android và đặt tên cho nó trong một gói com.example.My Application
2Sửa đổi hoạt động tập tin trong MainActivity.java thêmbroadcastIntent () 
3Tạo một file java mới gọi là MyReceiver.java trong gói com.example để xác định một BroadcastReceiver.
4Một ứng dụng có thể xử lý một hoặc nhiều ý đồ tùy chỉnh và hệ thống mà không bị bất kỳ hạn chế nào. 
5Sửa đổi các nội dung mặc định của tập tin res / layout / activity_main.xml  bao gồm các nút để tạo broadcast.
6Không cần phải sửa đổi các chuỗi tập tin , Android studio bảo vệ file string.xml.
7Chạy ứng dụng để khởi động giả lập Android và xác minh các kết quả của những thay đổi được thực hiện trong các ứng dụng.
Sau đây là nội dung của tập tin hoạt động chính sửa đổi src / com.example.My Application / MainActivity.java . Tập tin này có thể bao gồm mỗi phương pháp chu kỳ cơ bản.Chúng tôi đã thêm phương pháp broadcastIntent ()  để phát sóng một thông điệp tùy chỉnh.

Sau đây là nội dung của src / com.example.My Application / MyReceiver.java :

Sau đây sẽ các nội dung sửa đổi của AndroidManifest.xml file. Ở đây, chúng tôi đã thêm vào <service ... /> để đề cập đến các dịch vụ của chúng tôi:

Sau đây là nội dung của tập tin res / layout / activity_main.xml vào một nút để tùy chỉnh phát sóng.


Sau đây sẽ là nội dung của res / values ​​/ strings.xml để xác định hai hằng số mới -
<resources>    
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">My Application</string>
</resources>
 Để chạy các ứng dụng từ Android studio, một mở các tập tin hoạt động của dự án của bạn và bấm Chạy 
(biểu tượng trên thanh công cụ). Android Studio cài đặt các ứng dụng trên AVD của bạn và bắt đầu nó và nếu mọi thứ làm chuẩn, nó sẽ hiển thị cửa sổ Emulator 
Android Broadcast Demo

0 nhận xét:

Đăng nhận xét

 
Top