Russian Qt Forum
Апрель 25, 2024, 09:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено][Android] Послать SMS  (Прочитано 3653 раз)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« : Сентябрь 22, 2015, 18:42 »

Всем доброго времени.

Собственно, требуется написать код для отправки СМС, используя андройдовский Java API.
Есть у кого какие решения?

Пробовал во этот пример: http://grimaldi.univ-tln.fr/une-application-qt-android-qui-envoie-des-sms.html

Код
C++ (Qt)
void Widget::on_pushButton_clicked()
{
   // get the Qt android activity
   //QAndroidJniObject activity =  QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative",
   //                                                                        "activity",
   //"()Landroid/app/Activity;");
  //if (activity.isValid()){
       // get the default SmsManager
       QAndroidJniObject mySmsManager = QAndroidJniObject::callStaticObjectMethod("android/telephony/SmsManager",
                                                                                  "getDefault",
                                                                                  "()Landroid/telephony/SmsManager;" );
       // get phone number & text from UI and convert to Java String
       QAndroidJniObject myPhoneNumber = QAndroidJniObject::fromString(ui->lineEditDestinataire->text());
       QAndroidJniObject myTextMessage = QAndroidJniObject::fromString(ui->lineEditTexte->text());
       QAndroidJniObject scAddress = NULL;
       QAndroidJniObject sentIntent = NULL;
       QAndroidJniObject deliveryIntent = NULL;
 
       // call the java function:
       // public void SmsManager.sendTextMessage(String destinationAddress,
       //                                        String scAddress, String text,
       //                                        PendingIntent sentIntent, PendingIntent deliveryIntent)
       // see: http://developer.android.com/reference/android/telephony/SmsManager.html
 
       mySmsManager.callMethod<void>("sendTextMessage",
                                     "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V",
                                     myPhoneNumber.object<jstring>(),
                                     scAddress.object<jstring>(),
                                     myTextMessage.object<jstring>(), NULL, NULL );
 
   //}
   //else
   //    qDebug() << "Something wrong with Qt activity...";
 
}
 

Но оно нифига не посылает, а вываливается с ошибкой в консоль: "Something wrong with Qt activity..."
Но если комментирую код, связанный с "activity", то само приложение вываливается с ошибкой типа: "Unfortunately, send-sms has stopped".

Блин, есть у кого рабочий код? Улыбающийся

« Последнее редактирование: Сентябрь 23, 2015, 12:09 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Сентябрь 22, 2015, 19:42 »

Через сервис http://sms.ru, через http запрос:
https://github.com/gil9red/SimplePyScripts/blob/master/send_sms/send_sms.py
Записан

kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #2 : Сентябрь 22, 2015, 21:02 »

Считаем, что нет доступа к интернету.
Записан

ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Сентябрь 23, 2015, 12:09 »

Вау, все заработало  Шокированный. Кому интересно - проект в аттаче. Улыбающийся



Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.075 секунд. Запросов: 22.