안드로이드 프로그래밍 방식으로 에스엠에스 삭제
I want to 삭제하시겠습니까 자동으로 일부 특정 에스엠에스 내 안드로이드 응용 프로그램. 따라서 나는 메서드입니다 않는 경우에만 배포하십시오 정확히 내가 원하는 일을 할 수 있지만 내가 내 전화를 응용 프로그램을 직접 진행한다. 그런 다음 규칙수신되는 deletes 에스엠에스. 하지만 그래도 작동하지 않을 경우 응용 프로그램이) 에서 다운로드할 수 있다. 하지만 역시 오류가 없습니다. 내가 어떻게 이 문제를 해결할 수 있는 장치가 작동하지 않거나 이 문제는 한다고 아는 사람 있어요?
public void deleteSMS(Context context, String message, String number) {
try {
mLogger.logInfo("Deleting SMS from inbox");
Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(uriSms,
new String[] { "_id", "thread_id", "address",
"person", "date", "body" }, null, null, null);
if (c != null && c.moveToFirst()) {
do {
long id = c.getLong(0);
long threadId = c.getLong(1);
String address = c.getString(2);
String body = c.getString(5);
if (message.equals(body) && address.equals(number)) {
mLogger.logInfo("Deleting SMS with id: " + threadId);
context.getContentResolver().delete(
Uri.parse("content://sms/" + id), null, null);
}
} while (c.moveToNext());
}
} catch (Exception e) {
mLogger.logError("Could not delete SMS from inbox: " + e.getMessage());
}
}
31
7
사실 이 코드 내 게시물로의 100% 가 맞습니다. 이 문제는 안드로이드 요구를 받은 에스엠에스 저장할 수 있는 시간이 걸릴 것으로 보인다. 그래서 해결 방법은 추가하기만 핸들러 및 삭제 요청을 지연입니다 (1 또는 2 초.
사실은 이 모든 문제를 해결했다.
편집 (덕분에 막심 드미트리예프):
39, SMS 메시지를 함께 하는 고려해보십시오 can& desktopplatforms t 삭제하시겠습니까 장치의 안드로이드 4.4.
>. 또한 시스템 기본 app 만 쓸 수 있지만, 이제 다른 앱을 언제든지 데이터를 공급자입니다 메시지를 읽을 수 있습니다.
http://developer.android.com/about/versions/kitkat.html
하면 될 것이며 예외일 수 없다. 아무것도아니야 삭제됩니다. 이제 막 테스트됨 it on 2 에뮬레이터.
프로그램을 통해 SMS 메시지를 전송하는 방법
T , # 39 의 SMS 메시지를 삭제하시겠습니까 고려해보십시오 can& desktopplatforms 수 있는 장치의 안드로이드 4.4.
>. 또한 시스템 기본 app 만 메시지 데이터를 쓸 수 있습니다 >. 하지만, 기타 애플리케이션 다운스트림에서 공급자입니다 언제든지 볼 수 있다.
http://developer.android.com/about/versions/kitkat.html
하면 될 것이며 예외일 수 없다. 아무것도아니야 삭제됩니다. 이제 막 테스트됨 it on 2 에뮬레이터.
프로그램을 통해 SMS 메시지를 전송하는 방법
야 이 코드를 사용하여 에스엠에스 사용자정의할 삭제할 수 있습니다.
try { Uri 우리스마스 = 우리드패스 (content://sms/inbox" ";). 커서 () (c = 콘테스트롬제콘텐트레솔버 이케리 우리스마스, [], {" _id" ";;, 새로운 문자열이어야 thread_id" address";; person" " ". , " " date" body"; },, null null 0" " 읽기 =);
if (null = c! & &; 크리스토퍼 로베토퍼스트 () { 책임질래 { 긴 id = 크리스토퍼제롱 (0); 긴 트레이디드 = 크리스토퍼제롱 (1). 구체화하십시오 주소 = 크리스토퍼제스트링 (2). 구체화하십시오 바디입니다 = 크리스토퍼제스트링 (5). 문자열을 날짜 = 크리스토퍼제스트링 (3). 로고드레 (,,, " > > log> ". " 0-> ";; + 크리스토퍼제스트링 (0) + " 1-> ";; + 크리스토퍼제스트링 (1)
콘텐트발 주 값 = new 콘텐트발 주 (); 발 주스푸스 (" read",, 진정한 의미의). 자우프다테 제콘텐트레솔버 () (우리드패스 (content://sms/" ";) 값뿐만 " _id = "; + id, null).
if (메사게. 퀄스 (본문) & &; 이드리스 s. 퀄스 (숫자) { // 마로거트로긴포 (", 삭제에서 에스엠에스 (id: ". + 트레이디드); 콘테스트롬제콘텐트레솔버 오드레티 (() 우리드패스 (" content://sms/"; + id), " ",, 날짜 =? (4)} {크리스토퍼제스트링 새로운 문자열 []). 로고드레 (";;;;; " log> > > " success." 삭제하시겠습니까;). } } 낼수있지않나 (크리스토퍼 로베토네스트 ()); } (예외 e) {} catch 로고드레 (,,, " log> > > " 에스토스트링 ()); }
App 의 경우 4.4+ 선택할 수 있습니다 기본값입니다 에스엠에스 앱 및 애플리케이션 (앱) 으로 설정되어 에스엠에스 삭제하시겠습니까 기본 수 있을지 잘 알려져 있다.
기본값으로 만들기 위해 앱 어플리케이션 이 슬라이드에서는. 확인란 app 가 기본 app 경우 에스엠에스 삭제하기 전에. 이날 전화 클래스를 사용하여 제공하는 대신 하르코딩.
이 모두 삭제 (메일박스와, outbox, 드래프트), 단문메시지서비스 (sms).
이 코드를 사용하여.
또는
안드로이드 앱 전화 및 sms 메시지가 나타나는 스케쳐내 너회의 didn& # 39, 이진 (데이터) 장치를 사용하여 에스엠에스 통지용 보내지 않는다. 이 링크를 참조 http://codetheory.in/android-sms/