Apple 정품 아이폰 16 Pro 자급제, 화이트 티타늄, 256GB






블로그 내에서 다른 포스팅 검색하기기
검색어를 입력해주세요

오늘은 이전 포스팅에 이어서 Intentfilter를 사용하여 브로드캐스트를 전송하고 수신하는 방법에 대해 알아보도록 하겠습니다.
또한 수신할 대상 패키지를 미리 지정해서 전송하는 방법도 알아보겠습니다.

 

 

안드로이드들...

 

Intentfilter를 사용한 Broadcast 전송 및 수신 예제


IntentFilter를 사용하여 Broadcast를 전송하고 수신할 수 있습니다.
아래는 그 예제입니다.


// Broadcast 전송
Intent intent = new Intent();
intent.setAction("com.example.myapp.MY_ACTION");
intent.putExtra("message", "Hello, world!");

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.example.myapp.MY_ACTION");
registerReceiver(new MyBroadcastReceiver(), intentFilter);

sendBroadcast(intent);

// Broadcast 수신
public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals("com.example.myapp.MY_ACTION")) {
            String message = intent.getStringExtra("message");
            Toast.makeText(context, "Received message: " + message, Toast.LENGTH_SHORT).show();
        }
    }
}



위의 예제에서는 Broadcast 전송 시에 IntentFilter를 사용하여 특정 액션을 필터로 등록하고 있습니다.
그리고 BroadcastReceiver에서도 동일한 액션을 수신할 수 있도록 IntentFilter를 등록하고 있습니다.


 

수신 패키지를 지정하여 Broadcast 전송 예제


Broadcast를 특정 패키지에만 전송하고자 할 때는 setPackage() 메서드를 사용하여 패키지를 지정할 수 있습니다.
아래는 그 예제입니다.


Intent intent = new Intent();
intent.setAction("com.example.myapp.MY_ACTION");
intent.putExtra("message", "Hello, world!");
intent.setPackage("com.example.anotherapp");
sendBroadcast(intent);

 

 



위의 예제에서는 "com.example.anotherapp" 패키지에만 Broadcast를 전송하고 있습니다.
해당 패키지를 가진 애플리케이션에서만 Broadcast를 수신할 수 있습니다.

 

안드로이드는 intent를 통해 통신을한다.

 

 

Broadcast를 통해 양방향 통신하기 예제


BroadcastReceiver를 사용하여 양방향 통신을 구현할 수 있습니다. 아래는 그 예제입니다.


// Broadcast 전송
Intent requestIntent = new Intent();
requestIntent.setAction("com.example.myapp.REQUEST_ACTION");
requestIntent.putExtra("request_message", "Hello, server!");
sendBroadcast(requestIntent);

// Broadcast 수신
public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals("com.example.myapp.REQUEST_ACTION")) {
            String requestMessage = intent.getStringExtra("request_message");

            // 서버로부터 응답 받기 위해 Broadcast 전송
            Intent responseIntent = new Intent();
            responseIntent.setAction("com.example.myapp.RESPONSE_ACTION");
            responseIntent.putExtra("response_message", "Hello, client!");
            sendBroadcast(responseIntent);
        } else if (action.equals("com.example.myapp.RESPONSE_ACTION")) {
            String responseMessage = intent.getStringExtra("response_message");
            Toast.makeText(context, "Received response: " + responseMessage, Toast.LENGTH_SHORT).show();
        }
    }
}



 

위의 예제에서는 "com.example.myapp.REQUEST_ACTION" 액션을 가진 Broadcast를 전송하고 있습니다.
이를 수신한 BroadcastReceiver에서는 "com.example.myapp.RESPONSE_ACTION" 액션을 가진 Broadcast를 다시 전송하여 양방향 통신을 구현하고 있습니다.

 

BroadcastReceiver를 사용하면 안드로이드 애플리케이션에서 메시지를 주고받을 수 있으며, 다른 애플리케이션과의 통신이 가능해집니다.
이를 통해 애플리케이션 개발에 다양한 기능과 유연성을 제공할 수 있습니다.

반응형


살구엉덩이님의
글이 좋았다면 응원을 보내주세요!