그래, 이것이 Android 4.4 이상에서 구현 된 보안/유용성 기능이라는 것을 알고 있으며 여기에 여러 번 언급되어 있습니다. 내가 겪고있는 문제는 텍스트 메시징 응용 프로그램을 만들고 싶지 않다는 것입니다. 사실, the only use of texting in my application is so that an outside admin can ping the phone with a text from a specific number, and have a simple "Running" message returned if the application is running.
참고 - 메시지 수신뿐만 아니라 메시지 전송도 감지 할 수 있습니다.받은 편지함에서 메시지를 삭제할 수 없습니다.사용자 지정 기본 SMS 응용 프로그램에서 "기본"공급자 SMS 응용 프로그램으로 메시지 전달
메시지를받은 편지함에 남겨 두지 않아도 기능상의 문제는 없지만 잠시 후 사용자에게는 성가신 메시지가 표시되며 관리자는 백그라운드 형식으로 사용자를 핑하는 것을 좋아합니다. 삭제가 예상대로 작동하지 않기 때문에 항상 내 로그에 Delete error...
메시지를 표시되어
int deletedRows = context.getContentResolver().delete(Uri.parse("content://sms/" + id), "date=?",
new String[] { c.getString(4) });
if(deletedRows > 0) Log.d(TAG, "Delete success...");
else Log.d(TAG, "Delete error...");
때문에, 짧은 이야기 너무 오래, 내가 일을하는 새로운 방법을 파악해야합니다.
나는 SMS for KitKat, Getting SMS Apps Ready for KitKat 및 A Similar SO Question (허용 대답이 있음)을 읽었지만 뭔가가 누락 된 것 같습니다. 문제는 모든 문자 메시지를 수신하고, 표시하고, 전송하고, 처리하는 것을 제어 할 필요가 없다는 것입니다. 난 단지 특정 사용자의 특정 메시지를 삭제할 수 있기를 원합니다.
그래서 가장 좋은 해결책은 내 응용 프로그램을 기본 SMS 응용 프로그램으로 사용하고, 필요한 개별 메시지를 삭제하고, 다른 모든 메시지를 내 "기본"공급자 SMS 응용 프로그램으로 전달하는 것입니다. 내가 정확히 (내 열린 우리당/분석 기술이 정말 대단하지 않은)이 작업을 수행하는 방법을 몰라, 내가 내 로그가 올바른 값을 보여줍니다하지만 그것이
Log.d(TAG, "Values to send: " + address + "/" + body);
ContentValues content = new ContentValues();
content.put("address", address);
content.put("body", body);
// continue for date, person, etc.
context.getContentResolver().insert(Uri.parse("content://sms/" + id), content);
같을 그러나 것이 나에게 보인다 메시지를 보내지 마십시오. 나는 무엇을 놓치고 있는가? (또는 이것에 대해 갈 수있는 더 좋은 방법이 있는가?)
결국 관리 했습니까? 나는이 일을 직접하고 있습니다. ... – TiGer
메시지가받은 편지함에 도착하지 못했습니다. @ 티어 – zgc7009
이것은 정확히 내가 들어있는 시나리오입니다. 혹시 뭔가를 생각해 냈습니까? 받은 편지함에있는 메시지로 생활하는 법을 배웁니다.필자는 전화기를보다 잘 제어 할 수 있으므로 문자 그대로 내 기본 앱에 의도를 전달하고 메시지를 먹는 SMS 앱을 작성할 수 있지만 그렇게하지 않으려 고합니다. (오늘 의제 : KitKat을위한 오픈 소스 SMS 프로젝트 찾기 ...) – JamieB