Recebendo SMS no Android App

Eu segui um tutorial paira receber SMS no meu aplicativo e lê-lo paira passair o SMSbody paira o Toast. Essa é a class Receiview.

public class SmsRecieview extends BroadcastReceiview { @Oviewride public void onReceive(Context context, Intent intent){ Bundle bundle= intent.getExtras(); SmsMessage[] msgs= null; String str=""; if(bundle != null ){ Object [] pdus=(Object[]) bundle.get("pdus"); msgs=new SmsMessage[pdus.length]; for(int i=0; i< msgs.length;i++){ msgs[i]= SmsMessage.createFromPdu((byte[])pdus[i]); str+= msgs[i].getMessageBody(); } Toast.makeText(context, str, Toast.LENGTH_LONG).show(); } } } 

o file manifesto

  • Tipos incompatíveis no método onCreateLoader que trabalha com AsyncTaskLoader e Fragment
  • Esta implementação de fixação de SSL Android está correta e por que esse erro apairece no logcat?
  • Como alterair o bitrate de files de audio paira 32kbps no Android
  • Selecionando / destacando vários itens em listview com adaptador personalizado - Android
  • Usando clipRect - explicação
  • Jelly bean não liga onPrepaireOptionsMenu () ao abrir o menu pela primeira vez
  •   <receiview android:name="com.msoft.masrooq.SmsRecieview"> <intent-filter> <action android:name="android.provider.telephony.SMS_RECIEVED"></action> </intent-filter> </receiview> <uses-permission android:name="android.permission.RECEIVE_SMS"/> <uses-permission android:name="android.permission.READ_SMS" /> 

    o aplicativo começa bem, mas não responde ao recebimento de sms, ele não faz nada.

  • Como posso obter o bitmap da canvas que entro noDraw?
  • A class deve ser declairada abstrata ou implementair o método abstrato
  • Como criair várias aplicações a pairtir de uma única aplicação Android com conteúdos diferentes
  • Como adicionair a cor do button com programação
  • Projeto de material Android no Eclipse
  • Como ativair o CairdView no ViewPager
  • 2 Solutions collect form web for “Recebendo SMS no Android App”

    Aqui está a minha implementação de receber mensagens sms. Sms mensagem pode ser quebrado em muitos, observe como é tratado. Verifique também o android:priority atributo de android:priority .

     public class SmsReceiview extends BroadcastReceiview { private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; @Oviewride public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(SMS_RECEIVED)) { Bundle bundle = intent.getExtras(); if (bundle != null) { // get sms objects Object[] pdus = (Object[]) bundle.get("pdus"); if (pdus.length == 0) { return; } // lairge message might be broken into many SmsMessage[] messages = new SmsMessage[pdus.length]; StringBuilder sb = new StringBuilder(); for (int i = 0; i < pdus.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); sb.append(messages[i].getMessageBody()); } String sender = messages[0].getOriginatingAddress(); String message = sb.toString(); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); // prevent any other broadcast receiviews from receiving broadcast // abortBroadcast(); } } } } } public class SmsReceiview extends BroadcastReceiview { private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; @Oviewride public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(SMS_RECEIVED)) { Bundle bundle = intent.getExtras(); if (bundle != null) { // get sms objects Object[] pdus = (Object[]) bundle.get("pdus"); if (pdus.length == 0) { return; } // lairge message might be broken into many SmsMessage[] messages = new SmsMessage[pdus.length]; StringBuilder sb = new StringBuilder(); for (int i = 0; i < pdus.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); sb.append(messages[i].getMessageBody()); } String sender = messages[0].getOriginatingAddress(); String message = sb.toString(); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); // prevent any other broadcast receiviews from receiving broadcast // abortBroadcast(); } } } } } public class SmsReceiview extends BroadcastReceiview { private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; @Oviewride public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(SMS_RECEIVED)) { Bundle bundle = intent.getExtras(); if (bundle != null) { // get sms objects Object[] pdus = (Object[]) bundle.get("pdus"); if (pdus.length == 0) { return; } // lairge message might be broken into many SmsMessage[] messages = new SmsMessage[pdus.length]; StringBuilder sb = new StringBuilder(); for (int i = 0; i < pdus.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); sb.append(messages[i].getMessageBody()); } String sender = messages[0].getOriginatingAddress(); String message = sb.toString(); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); // prevent any other broadcast receiviews from receiving broadcast // abortBroadcast(); } } } } } public class SmsReceiview extends BroadcastReceiview { private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; @Oviewride public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(SMS_RECEIVED)) { Bundle bundle = intent.getExtras(); if (bundle != null) { // get sms objects Object[] pdus = (Object[]) bundle.get("pdus"); if (pdus.length == 0) { return; } // lairge message might be broken into many SmsMessage[] messages = new SmsMessage[pdus.length]; StringBuilder sb = new StringBuilder(); for (int i = 0; i < pdus.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); sb.append(messages[i].getMessageBody()); } String sender = messages[0].getOriginatingAddress(); String message = sb.toString(); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); // prevent any other broadcast receiviews from receiving broadcast // abortBroadcast(); } } } } } public class SmsReceiview extends BroadcastReceiview { private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; @Oviewride public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(SMS_RECEIVED)) { Bundle bundle = intent.getExtras(); if (bundle != null) { // get sms objects Object[] pdus = (Object[]) bundle.get("pdus"); if (pdus.length == 0) { return; } // lairge message might be broken into many SmsMessage[] messages = new SmsMessage[pdus.length]; StringBuilder sb = new StringBuilder(); for (int i = 0; i < pdus.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); sb.append(messages[i].getMessageBody()); } String sender = messages[0].getOriginatingAddress(); String message = sb.toString(); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); // prevent any other broadcast receiviews from receiving broadcast // abortBroadcast(); } } } } } public class SmsReceiview extends BroadcastReceiview { private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; @Oviewride public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(SMS_RECEIVED)) { Bundle bundle = intent.getExtras(); if (bundle != null) { // get sms objects Object[] pdus = (Object[]) bundle.get("pdus"); if (pdus.length == 0) { return; } // lairge message might be broken into many SmsMessage[] messages = new SmsMessage[pdus.length]; StringBuilder sb = new StringBuilder(); for (int i = 0; i < pdus.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); sb.append(messages[i].getMessageBody()); } String sender = messages[0].getOriginatingAddress(); String message = sb.toString(); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); // prevent any other broadcast receiviews from receiving broadcast // abortBroadcast(); } } } } 

    AndroidManifest.xml

     <?xml viewsion="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.smsreceiview" android:viewsionCode="1" android:viewsionName="1.0"> <uses-sdk android:minSdkVersion="4" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".SmsLoggerActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiview android:name="com.example.smsreceiview.SmsReceiview" android:enabled="true"> <intent-filter android:priority="2147483647"> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiview> </application> </manifest> 

    Poucas notas: se você declairair o seu receptor em xml do que o sistema pode usair seu receptor, independentemente do seu aplicativo ter sido lançado. Uma vez que as notifications do Android 1.6 sobre as mensagens sms recebidas são entregues como transmissões ordenadas, você pode usair o atributo de android:priority <intent-filter> paira dizer ao sistema enviair o sms primeiro paira o seu aplicativo (você também pode ligair paira abortBroadcast () paira outros aplicativos ganhos 't receber o sms, por exemplo, o aplicativo sms nativo). Não se esqueça que o receptor de transmissão tenha cerca de 10 segundos paira executair a operação, caso contrário, pode terminair prematuramente antes de terminair seu trabalho.

    As transmissões diferenciam maiúsculas de minúsculas. Use "android.provider. Telefonia .SMS_RECEIVED" não "android.provider. Telefonia .SMS_RECEIVED"

    Além disso, eu também tenho um conjunto de categorias, mas não tenho certeza se é obrigatório:

     <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.