Android 프로젝트 는 문자 발송,수신,문자 차단 을 실현 합 니 다.
문자 발송
안 드 로 이 드 에 서 는 문자 발송 방법 에 대한 우수한 패키지 로 인해 문자 발송 에 대한 개발 이 매우 간단 해 졌 다.
public static void sendMessage(Context context, String content, String phoneNumber) {
SmsManager sms = SmsManager.getDefault();
PendingIntent pi = PendingIntent.getBroadcast(context, 0, new Intent(), 0);
sms.sendTextMessage(phoneNumber, null, content, pi, null);
}
권한 문제 가 있다 는 것 을 잊 지 마 세 요:
<uses-permission android:name="android.permission.SEND_SMS" />
문자 수신짧 은 정보의 수신 은 상대 적 으로 복잡 할 수 있다.복잡 한 원인 도 쉽게 이해 해 야 한다.받 아들 이 는 것 은 통제 할 수 없다.그 러 니까 우리 핸드폰 에 언제 문자 가 올 지 모 르 는 거 야.너무 수 동적 이기 때문에 안 드 로 이 드 의 메커니즘 에 탄복 할 정도 로 강 한 것 이 나 타 났 다.그것 이 바로 방송 수신 자 이다.우 리 는 라디오 수신 자 를 등록 한 후에 이 방송 수신 자 에 게 짧 은 정보 가 도착 하 는 지 여 부 를 시시각각 감청 하 게 했다.이렇게 수 동적 촉발 사건 은 완벽 하 게 해결 되 었 다.다음은 이 과정 을 살 펴 보 자.
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
}
showToast(context, " : " + smsMessage[0].getMessageBody());
}
}
권한 추가:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
그리고 manifest 에서 정적 등록 을 진행 합 니 다:
<receiver android:name=".broadcast.SMSReceiver" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
문자 메시지 차단문자 메 시 지 를 받 을 수 있 는 기초 위 에서 문자 차단 을 하 는 것 은 오히려 훨씬 간단 하 다.받 을 수 있 기 때문에 저 는 첫 번 째 로 받 은 사람 이 되 고 받 은 문 자 를 더 이상 아래로 전파 하지 않 으 면 짧 은 메 시 지 를 차단 할 수 있 습 니 다.
우선권 증가:
전파 차단:
문자 삭제
다음은 문자 관련 협의.
content://sms/inbox 수신 함
content://sms/sent 발송 됨
content://sms/draft 초고
content://sms/outbox 발송 함
content://sms/failed 발송 실패
content://sms/queued 발송 대기 목록
수신 함 을 예 로 들 어 문자 삭제 코드 는 다음 과 같다.
메시지 에 특정한 필드 가 포 함 된 문 자 를 삭제 합 니 다.
public void deleteSMS(String smscontent) {
ContentResolver CR = getContentResolver();
try {
// uri
Uri uri = Uri.parse("content://sms/inbox");
//
Cursor cursor = CR.query(uri, new String[] { "_id", "address", "person", "body", "date", "type" }, null, null, null);
int count = cursor.getCount();
if (count > 0) {
while (cursor.moveToNext()) {
String body = cursor.getString(cursor.getColumnIndex("body"));//
if (body.contains(smscontent)) {
int id = cursor.getInt(cursor.getColumnIndex("_id"));
CR.delete(Uri.parse("content://sms"), "_id=" + id, null);
}
}
}
} catch (Exception e) {
Log.v("e", e.getMessage());
}
}
최신 문자 메시지 에 따라 정보 삭제(삭 제 된 대상 은 문자 가 아 닌 연락처)
public void deleteSMS() {
ContentResolver CR = getContentResolver();
//
Cursor cursor = CR.query(Uri.parse("content://sms/inbox"), new String[] { "_id", "thread_id" }, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
int a = cursor.getCount();
int b = cursor.getColumnCount();
long threadId = cursor.getLong(1);
CR.delete(Uri.parse("content://sms/conversations/" + threadId), null, null);
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.