2017-03-23 4 views
-1

내 응용 프로그램의 목적은 SMS을 삭제하거나 수락하는 사람들의 유효성에 따라 일부 매개 변수를 기준으로받은 SMS's을 필터링하는 것입니다.메시징 응용 프로그램에 SMS 의도 보내기

더 이상 (Android KitKat부터) 스텔스 앱을 사용하는 것이 가능하지 않으므로 기본 앱으로 만들기로 결정했습니다.

나는 현재 주식 SMS 응용 프로그램에 (A BroadcastReceiver를 통해 내 애플 리케이션에 onReceive 기능을 통해 수신) 인 텐트를 전송 문제를 많이 (이 SMS 특정 수신 될 수 있도록 것) 데.

Telephony.Sms.getDefaultSmsPackage(getApplicationContext()); 

나는이 주식 SMS 앱에 대한 (com.android.mms) 패키지 사용 얻을 수 있었다 :

나는이 코드 조각을 사용하는 것을 알아 냈다. 그리고 어떤 조사를 통해 나는 transaction.SmsReceiver이 내가 찾고있는 수업이라는 것을 알게되었습니다.

그러나이 앱에 의도를 보내는데 문제가 있습니다. 당신은`BroadcastReceiver`에 브로드 캐스트를 보낼 수`만약 startActivity()를`사용하지 않는,

W/System.err: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.mms.transaction/com.android.mms.transaction.SmsReceiver}; 
+0

먼저 도움이 될 수

Intent redirectIntent = intent; redirectIntent.setClassName("com.android.mms.transaction","com.android.mms.transaction.SmsReceiver"); redirectIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(redirectIntent); 

나는 다음과 같은 오류를 얻을 수 . 둘째, 당신이하려는 일을 할 수 없습니다. 기본값 인 경우 모든 것을 처리합니다. 코드 작성을 원하지 않는 기능을 전달할 수는 없습니다. –

+0

@MikeM. 그래서 이것을 피할 수있는 방법은 없습니다. 궁극적으로 내가하고 싶은 일은 SMS가 특정 번호에서 파생 된 일종의 보관소 역할을하는 것이므로 이러한 메시지가 일반 수신함에 도착하게해서는 안됩니다. –

+0

아니요. KitKat 이래로 전용 SMS 차단기 같은 것이 없습니다. 기본값 만 차단할 수 있지만 기본값 인 경우 SMS 및 MMS 송수신, 제공자의 저장 처리 등 많은 작업을 담당하게됩니다. –

답변

0

이 당신에게

Intent smsIntent = new Intent(Intent.ACTION_VIEW); 
smsIntent.setType("vnd.android-dir/mms-sms"); 
smsIntent.putExtra("address", "12125551212"); 
smsIntent.putExtra("sms_body","Body of Message"); 
startActivity(smsIntent);