Intereting Posts
Получить изображение Uri in onActivityResult после съемки? Opengls eglCreateWindowSurface GL Ошибка EGL_BAD_ALLOC Веб-просмотр Android: обнаружение прокрутки Jar Mismatch Найдено 2 версии android-support-v4.jar в списке зависимостей Установить текст предупреждающего сообщения AlertDialog, который должен быть полужирным Как добавить событие нажатия кнопки в студии Android Как я могу отправить информацию журнала из моего приложения Android на свой сервер? Как найти текущую активность переднего плана в android Андроид sdk подскажет тост в настройках аккаунта Анализировать файл дампа памяти HPROF из командной строки Android Studio: Зависимости моментальных снимков не обновляются должным образом Параллельная модификация Исключение: добавление в ArrayList Запретить ViewPager уничтожать заставку Получение неоднозначного экрана неба при загрузке карты google Android LongClickListener для элементов группы ExpandableListView

Могу ли я автоматически отправлять SMS (без необходимости одобрения пользователем)

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

Есть ли способ автоматически отправлять SMS без подтверждения пользователем?

Спасибо, Lior

Solutions Collecting From Web of "Могу ли я автоматически отправлять SMS (без необходимости одобрения пользователем)"

Вы можете использовать этот метод для отправки смс. Если sms больше 160 символов, то используется sendMultipartTextMessage.

private void sendSms(String phonenumber,String message, boolean isBinary) { SmsManager manager = SmsManager.getDefault(); PendingIntent piSend = PendingIntent.getBroadcast(this, 0, new Intent(SMS_SENT), 0); PendingIntent piDelivered = PendingIntent.getBroadcast(this, 0, new Intent(SMS_DELIVERED), 0); if(isBinary) { byte[] data = new byte[message.length()]; for(int index=0; index<message.length() && index < MAX_SMS_MESSAGE_LENGTH; ++index) { data[index] = (byte)message.charAt(index); } manager.sendDataMessage(phonenumber, null, (short) SMS_PORT, data,piSend, piDelivered); } else { int length = message.length(); if(length > MAX_SMS_MESSAGE_LENGTH) { ArrayList<String> messagelist = manager.divideMessage(message); manager.sendMultipartTextMessage(phonenumber, null, messagelist, null, null); } else { manager.sendTextMessage(phonenumber, null, message, piSend, piDelivered); } } } 

Обновить

PiSend и piDelivered находятся в ожидании намерения Они могут инициировать трансляцию, когда метод завершает отправку SMS

Вот пример кода для широковещательного приемника

  private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String message = null; switch (getResultCode()) { case Activity.RESULT_OK: message = "Message sent!"; break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: message = "Error. Message not sent."; break; case SmsManager.RESULT_ERROR_NO_SERVICE: message = "Error: No service."; break; case SmsManager.RESULT_ERROR_NULL_PDU: message = "Error: Null PDU."; break; case SmsManager.RESULT_ERROR_RADIO_OFF: message = "Error: Radio off."; break; } AppMsg.makeText(SendMessagesWindow.this, message, AppMsg.STYLE_CONFIRM).setLayoutGravity(Gravity.BOTTOM) .show(); } }; 

И вы можете зарегистрировать его, используя следующую строку в своей деятельности

 registerReceiver(receiver, new IntentFilter(SMS_SENT)); // SMS_SENT is a constant 

Также не забудьте отменить регистрацию трансляции в onDestroy

 @Override protected void onDestroy() { unregisterReceiver(receiver); super.onDestroy(); } 

Если ваше приложение имеет в AndroidManifest.xml следующее разрешение

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

Вы можете отправить столько SMS, сколько хотите

 SmsManager manager = SmsManager.getDefault(); manager.sendTextMessage(...); 

И это все.

Да, вы можете отправлять SMS с помощью SmsManager . Пожалуйста, имейте в виду, что для вашего приложения потребуется разрешение SEND_SMS .

Да, вы можете отправлять sms без взаимодействия с пользователем … Но это работает, когда пользователь хочет отправить sms только на один номер.

 try { SmsManager.getDefault().sendTextMessage(RecipientNumber, null, "Hello SMS!", null, null); } catch (Exception e) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); AlertDialog dialog = alertDialogBuilder.create(); dialog.setMessage(e.getMessage()); dialog.show(); } 

Также добавьте разрешение манифеста ….

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