안 드 로 이 드 브 로드 캐 스 트 Receiver 문자 받 는 라디오
4225 단어 AndroidBroadcastReceiver방송 하 다.
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 이후 에는 동적 권한 신청 을 해 야 한다
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.