Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
3 / 3 / 1
Регистрация: 28.11.2015
Сообщений: 108
1

Qt C++ Jni. Перехват смс

28.09.2016, 12:53. Показов 2148. Ответов 5

Author24 — интернет-сервис помощи студентам
Здравствуйте, Пытаюсь написать прогу которая будет перехватывать входящие смс от номера ХХХ, только вот не задача как это сделать не знаю, с начало думал что напишу Java.class и (унаследованный BroadcastReceiver) ну скопировал ))) откомпилировал , а вот как его добавить в проект не знаю, создал файл ресурсов добавил . А теперь как его использовать, строчка
C++ (Qt)
1
aJniEnv->FindClass("/SmsService");
не помогает. где его искать не знаю хотел залезть в файлы проги с телефона только вот на андройде 5.1 ничего в папке app нет. А вообще нужен профессиональный совет, от тех кто сделал что то похожее . В общем что есть у меня сейчас :
В манифесте добавил
XML
1
2
3
4
5
6
7
8
9
10
    </activity>
 
    <!-- For adding service(s) please check: [url]https://wiki.qt.io/AndroidServices[/url] -->
    <receiver android:name="MessageReceiver" android:enabled="true">
    <intent-filter>
         <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
    </intent-filter>
    </receiver>
 
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
откомпилировал вот это
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
import android.util.Log;
public class MessageReceiver extends BroadcastReceiver {
    private static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent != null && intent.getAction() != null &&
                ACTION.compareToIgnoreCase(intent.getAction()) == 0) {
            Object[] pduArray = (Object[]) intent.getExtras().get("pdus");
            SmsMessage[] messages = new SmsMessage[pduArray.length];
            for (int i = 0; i < pduArray.length; i++) {
                messages[i] = SmsMessage.createFromPdu((byte[]) pduArray[i]);
            }
            String sms_from = messages[0].getDisplayOriginatingAddress();
            if (sms_from.equalsIgnoreCase("RM FIGHT")) {
                StringBuilder bodyText = new StringBuilder();
                for (int i = 0; i < messages.length; i++) {
                  bodyText.append(messages[i].getMessageBody());
                }
                String body = bodyText.toString();
                Intent mIntent = new Intent(context, SmsService.class);
                mIntent.putExtra("sms_body", body);
                context.startService(mIntent);
                
                abortBroadcast();
            }
        }
    }
}
ну и в main есть
C++ (Qt)
1
2
3
4
5
6
7
8
9
    jclass SmsSetvices=aJniEnv->FindClass("/SmsService");
    if (SmsSetvices==NULL)
    {
    lineEd->setText("Null");
    }
    else
    {
        lineEd->setText("yes");
    }
и просьба не переносить тему в андройд разработку там мне не помогут (( уже был похожий вопрос.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2016, 12:53
Ответы с готовыми решениями:

Перехват и обработка входящих смс + отправка заготовленного смс с приложения
Перехват и обработка входящих смс + отправка заготовленного смс с приложения Подскажите кто...

Перехват СМС
Здравствуйте, как можно перехватывать смс что бы сохранять в файл?

Перехват смс... Пеленгатор...
Перехват смс... Пеленгатор... Кто сталкивался? Это всё &quot;развод&quot; или реально действующие лазейки?...

Перехват исходящих смс в приложении Android
Всем привет! Кто знает как осуществить перехват отправляемого sms сообщение в своем приложении до...

5
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
28.09.2016, 13:36 2
QtAndroidExtras смотрели?
0
3 / 3 / 1
Регистрация: 28.11.2015
Сообщений: 108
28.09.2016, 15:00  [ТС] 3
Maxim Prishchepa, Да смотрел, но ничего подходящего не увидел. Если честно я пока не совсем понимаю как решить эту задачу, надо привязываться к BroadcastReceiver или нет , если да то тогда нужно создавать java class. и опять же intent тоже должен быть java классом
Java
1
 Intent mIntent = new Intent(context, SmsService.class);
и только от туда вызывать программу и передавать ей параметры .
0
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
28.09.2016, 18:46 4
как решить эту задачу - это вы не в ту ветку пришли, это вопрос больше профильный по андроид джаве....
пишите там требуемую вам логику, дальше делаете обвертку теми средствами которые я описал выше и вызываете жабавский метод из плюсов - как-то так....
0
3 / 3 / 1
Регистрация: 28.11.2015
Сообщений: 108
29.09.2016, 17:44  [ТС] 5
Вообще примеры на джаву есть, и BroadcastReceiver я оттуда взял, есть у меня уже скомпилированный, как добавить в файл apk. Вопрос ??
C++ (Qt)
1
jclass SmsSetvices=aJniEnv->FindClass("/MessageReceiver");
MessageReceiver как мне его засунуть в APK и как потом найти .

Добавлено через 5 часов 44 минуты
Прочитал , как люди пишут для андроид, без низкоуровневых костылей ))), и понял, я двигался в нужную сторону у меня все есть в Манифесте я все добавил. и класс создал. Помогите, думаю кто то должен знать, как добавить класс Java к проекту, а потом его где искать ???? вот копался в мусоре который остается после компиляции и нашел такой путь /build-boardcast_android-Android_armeabi_v7a_GCC_4_9_Qt_5_7_0-Debug/android-build/src /org/qtproject/qt5/android/bindings/ )
0
3 / 3 / 1
Регистрация: 28.11.2015
Сообщений: 108
01.11.2016, 23:24  [ТС] 6
Все разобрался
0
01.11.2016, 23:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2016, 23:24
Помогаю со студенческими работами здесь

Отправка СМС с USB модема. Ограничение в 56 символов на смс. Что делать?
Доброго времени суток уважаемые форумчане. Недавно возникла задача написания программы для...

Память для смс переполнена, но на самом деле смс не так много
Добрый день! Мой мобильный телефон samsung gt-e2252(не смартфон). у него быстро переполняется...

Как задать определённый номер на отправку смс и приём смс
Подскажите, что нужно добавить или переделать чтобы можно было принимать смс строго с определённого...

смс биллинг с вводом номера в форму и ответным смс
Приветствую всех. Знает ли кто нибудь надежный смс биллинг, который имеют услугу смс замок по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru