2017-01-21 15 views
-1

Я разрабатываю приложение для Android, в котором я хочу прочитать sms и передать данные в свое приложение.Прочитайте входящие sms и передайте тело сообщения в приложение для Android

Я пробовал много способов, но не мог понять это. Вот что я делаю. Что-то не так в моем коде.

String msg_body = ""; 
     Uri my_uri = Uri.parse("content://sms/inbox"); 
     Cursor readFstSms = v.getContext().getContentResolver().query(my_uri, null, null, null, null); 
     if(readFstSms.moveToFirst()) 
     { 
      msg_body = readFstSms.getString(readFstSms.getColumnIndexOrThrow("body")).toString(); 
     } 
     readFstSms.close(); 
     Uri gmmIntentUri = Uri.parse("google.navigation:q=" + msg_body); 
     Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); 
     mapIntent.setPackage("com.google.android.apps.maps"); 
     startActivity(mapIntent); 

Я также добавил <uses-permission android:name="android.permission.READ_SMS"/> в моем файле манифеста, но до сих пор не могу найти решение

+0

Посмотрите здесь: http://stackoverflow.com/questions/32635704/android-permission-doesnt-work-even-if-i-have-declared-it. Если это не проблема, вам нужно предоставить гораздо больше подробностей о том, как именно она не работает. –

+0

Спасибо большое! Но все же это не решение проблемы. Может ли кто-нибудь помочь мне с этой проблемой. Я хочу развернуть это приложение. –

+0

Помогите с чем? Вы даже не сказали, в чем проблема. Разве он не читал, чего вы ожидаете? Разве это не читает ничего? Не запускает ли это «Активность»? Это крушение? Разве ваш телефон взрывается? Какие? «не могу понять» - не является адекватным заявлением о проблеме. –

ответ

0

Прежде всего вам необходимо установить права доступа на чтение для приложения через манифест

<uses-permission android:name="android.permission.READ_SMS"/> 
<uses-permission android:name="android.permission.RECEIVE_SMS"/> 

И вам нужен BroadcastReciever, который должен быть объявлен манифеста с фильтром намерения android.provider.Telephony.SMS_RECEIVED '
Как только приемник начнет работать, вы можете обрабатывать полученные SMS-сообщения в режиме on Получите метод обратного вызова этого BroadcastReceiver.

if (intentExtras != null) { 
      Object[] messages = (Object[]) intentExtras.get(SMS_BUNDLE); 

      for (int i = 0; i < messages.length; ++i) { 
       SmsMessage sms = SmsMessage.createFromPdu((byte[]) messages[i]); 

       String body = sms.getMessageBody().toString(); 

Toast.makeText(context, body, Toast.LENGTH_SHORT).show(); 

      } 
+0

Спасибо большое !!! Это решило мою проблему. –

 Смежные вопросы

  • Нет связанных вопросов^_^