안 드 로 이 드 브 로드 캐 스 트 Receiver 문자 받 는 라디오

지식 소개
1.broadcastReceiver 는 방송 수신 자 이 고 4 대 구성 요소 중 하나 입 니 다.
2.안 드 로 이 드 에는 여러 시스템 수준의 방송 이 내장 되 어 있어 응용 프로그램 에서 각종 시스템 의 상태 정 보 를 얻 을 수 있 습 니 다.
3.필드 사용:
① 휴대 전화 에 배터리 가 없 을 경우'배터리 가 부족 하 다'는 방송 정 보 를 알려 준다.사용 중인 app 이 이 방송 메 시 지 를 받 을 수 있 습 니 다.게임 이 라면 데 이 터 를 저장 하 라 고 알 릴 수 있 습 니 다.사용 중인 작업 소프트웨어 라면 전원 을 연결 하 라 고 알 릴 수 있 습 니 다.
[힌트]어떤 프로그램 에 있어 서 이 메 시 지 를 받 을 수도 있 고 받 지 않 을 수도 있 습 니 다.
② 핸드폰 의 storage 가 부족 하여 공간 을 정리 하 라 고 알려 줍 니 다.그렇지 않 으 면 프로그램 이 느 려 지 거나 사용 할 수 없습니다.
③ 핸드폰 이 켜 지면 어떤 프로그램 이 자동 으로 실행 되 고 QQ,위 챗 은 모두 켜 져 있 습 니 다.
4.한 프로그램 이 방송 메 시 지 를 보 내 고 한 프로그램 이 방송 메 시 지 를 받 기 때문에 적어도 두 프로그램 이 있어 야 한 발 한 발 수신 을 완성 할 수 있다.보 낸 쪽 을 방송 발송 자 라 고 합 니 다.받 는 쪽 을 방송 수신 자 라 고 합 니 다.
5.방송 수신 자 는 등록 을 해 야 한다.동적 등록,정적 등록(AndroidManiFest 파일 에서)
2.프로젝트 실천
[절차]
① 방송 수신 자 정의
② 등록,필터 인 텐트 필터 추가,특정 방송 수신
③ onReceiver 재 작성 방법 을 실행 하면 대 표 는 이미 방송 을 받 았 습 니 다.
④ 정보 방송 수신 자 를 정의 하고 시스템 방송 에 속 하 며 신청 권한(정적,동적)이 필요 하 다.
[프로젝트 구조]

【힌트】Receiver 를 만 드 는 방법 은 다음 과 같 습 니 다.
이 방법 은 자동 으로 AndroidManifest 에 receiver 를 등록 하지만,고정된 방송 을 받 아야 하 며,intent-filter 를 추가 해 야 합 니 다.


 【AndroidManifest】  

<receiver
  android:name=".receiver.MsgReceiver"
  android:enabled="true"
  android:exported="true">
 <intent-filter>
  <action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
    <!--         -->
  </intent-filter>
</receiver>
【MsgReceiver】
onReceiver 재 작성 방법,Toast 추가

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

public class MsgReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    // TODO: This method is called when the BroadcastReceiver is receiving
    // an Intent broadcast.
    Toast.makeText(context, "    ", Toast.LENGTH_SHORT).show();
    //  Toast    
  }
} 

[권한 추가]
① 정적 권한:[Android Manifest]

<uses-permission android:name="android.permission.READ_SMS"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
② 동적 권한[MainActivity]

import android.Manifest;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (ActivityCompat.checkSelfPermission(MainActivity.this,
        Manifest.permission.READ_SMS)!= PackageManager.PERMISSION_GRANTED||
        ActivityCompat.checkSelfPermission(MainActivity.this,Manifest.permission.RECEIVE_SMS)
        !=PackageManager.PERMISSION_GRANTED){
      ActivityCompat.requestPermissions(MainActivity.this,
          new String[]{Manifest.permission.READ_SMS,Manifest.permission.RECEIVE_SMS},
          1);
    }//      
  }
}


【테스트】
① 조작

② 효과
    
[소결]
① 여 기 는 수신 시스템 방송 으로 스스로 방송 을 정의 할 수 있다.그리고 많은 기능 을 추가 하여 방송 을 받 아 특정한 조작 을 할 수 있 습 니 다.
② 방송 은 필 터 를 추가 하여 특정 방송 을 수신 해 야 한다.
③ 수신 시스템 방송 이 라면 권한 신청 을 하고 5.0 이후 에는 동적 권한 신청 을 해 야 한다
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기