Всем доброго времени.
Собственно, требуется написать код для отправки СМС, используя андройдовский Java API.
Есть у кого какие решения?
Пробовал во этот пример:
http://grimaldi.univ-tln.fr/une-application-qt-android-qui-envoie-des-sms.htmlC++ (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".
Блин, есть у кого рабочий код?