Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 22 maja 2017, o 18:19


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 
Autor Wiadomość
PostNapisane: 23 lip 2016, o 15:00 
Offline
Użytkownik

Dołączył(a): 19 gru 2015
Posty: 37
Pomógł: 0

O smsach już było ale tyle co kot napłakał. Potrzebowałem aby moja aplikacja działała zawsze nawet po wyłączeniu i znalazłem na forum B4A. Należy zastosować filtr statyczny który działa zawsze

Jak zrobić taki filtr to bardo proste (oczywiście podpatrzyłem z forum b4a).

1. Wchodzimy w zakładkę PROJECT następnie klikamy na MANIFEST EDITOR i otwiera się okienko z kodem(jawa) do tego kodu doklejamy kod poniżej i klikamy na zapisz i zamykamy okienko.
Składnia: [ Pobierz ] [ Ukryj ]
język java5
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


2. teraz dodajemy do naszego projektu moduł serwisowy o nazwie s1 ( ta akurat nazwa została zdefiniowana w doklejonym wcześniej kodzie manifestu ale może być inna)

3. przechodzimy do zakładki bibliotek i dodajemy Phone oraz Reflection

4. do naszego modułu serwisowego s1 wklejamy następujący kod:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


5. Teraz wchodzimy do naszego modułu głównego ( Main) i
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Teraz po tym zabiegu nasz program będzie przechwytywał wiadomości nawet po wyłączeniu.

P.S. Może komuś się przyda



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2016, o 19:15 
Offline
Użytkownik

Dołączył(a): 17 sty 2014
Posty: 138
Pomógł: 9

kisoft napisał(a):
Teraz po tym zabiegu nasz program będzie przechwytywał wiadomości nawet po wyłączeniu.


Po wyłączeniu czego?
Programu? Telefonu?

Program raz uruchomiony pozostaje w backgroundzie dopóki jest wolna pamięć.
A wyłączenie telefonu to generalnie wyłączenie wyświetlacza i ewentualnie spowolnienie zegara.

Mam wrażenie, że grzebanie w Manifest nie jest konieczne - kiedyś popełniłem apk/serwis który podejmował akcje na podstawie odczytów z gps na "wyłączonym" telefonie i raczej nic do tego pliku nie dopisywałem. Nie pamiętam teraz dokładnie. Musiałbym poszperać w kodach...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2016, o 19:51 
Offline
Użytkownik

Dołączył(a): 19 gru 2015
Posty: 37
Pomógł: 0

Po wyłączeniu aplikacji ale takim całkowitym. To fragmentaryczne rozwiązanie które przedstawiłeś w jednym z postów przestaje działać wraz z wygaśnięciem cyklu życia aplikacji, przetestowałem w praktyce. Gdyby ktoś chciał zbudować aplikację która cały czas ma odbierać smsy (np. po restarcie telefonu) to pozostaje tylko to rozwiązanie.

Grzebanie w manifeście to powszechna praktyka, po to zrobiono wygodnego edytora.

P.S

Od wersji 4.4 Androida odbiór SMS-a możliwy tylko gdy aplikacja jest w pełnej aktywności (i nie pomoże nawet ustawienie priorytetu na 999). Dlatego potrzebny jest ten filtr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 11:52 
Offline
Użytkownik

Dołączył(a): 17 sty 2014
Posty: 138
Pomógł: 9

kisoft napisał(a):
Gdyby ktoś chciał zbudować aplikację która cały czas ma odbierać smsy (np. po restarcie telefonu) to pozostaje tylko to rozwiązanie.

A, o takie wyłączenie chodzi. To tak.
Można alternatywnie dopisać uruchamianie aplikacji w backgroundzie do plików startowych androida (ale trzeba mieć zrootowane urządzenie).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 12:59 
Offline
Użytkownik

Dołączył(a): 19 gru 2015
Posty: 37
Pomógł: 0

Już pisałem od wersji 4.4 Androida aplikacja zrzucona do pracy w tle też nie odbierze SMS (no chyba że stworzysz aplikację jako domyślną do odbierania i wysyłania sms która zastąpi systemową).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 12:12 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 280
Pomógł: 15

No i sa problemy.
Zaznaczylem biblioteki dokleiłem w manifeście co podano i mam blad przy kompilacji.
Dopisałem w kodzie w którym miejscu.

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 12:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 594
Pomógł: 47

Witam Kolegów,
jakiś czas temu napisałem apkę dla kolegi do przekierowywania sms-ów i połączeń nieodebranych na wskazany numer telefonu.
Wykorzystuję tam obsługę w tle za pomocą Service.
W załączeniu projekt, może komuś się nada.

Załącznik:
SMS_Message_ver001.zip


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 18:51 
Offline
Użytkownik

Dołączył(a): 19 gru 2015
Posty: 37
Pomógł: 0

Musisz powołać moduł serwisowy i tam wkleić kod do modułu. Nie traktuj modułu serwisowego jak zwykłej aktywności bo to tak nie działa. Ja w swojej apce w module serwisowym zapisuję wiadomość do pliku tekstowego ( na karcie, taki plik wymiany danych) i po otwarciu aktywności dopiero odczytuję .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 19:21 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 280
Pomógł: 15

No już w końcu apka działa. Właśnie musze teraz dojść jak obrobić wiadomość. Chce żeby w czasie uśpienia tableta po otrzymaniu smsa wysłał do procka odpowiednie rozkazy. Próbuje włączyć "startaktyvity" po otrzymaniu smsa ale aplikacja jest zamykana po odebraniu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 20:39 
Offline
Użytkownik

Dołączył(a): 19 gru 2015
Posty: 37
Pomógł: 0

zapisz numer telefonu i wiadomość do stringa stosując jakieś znaczniki, zapisz to do pliku tekstowego , potem po otwarciu aktywności zrób odczyt pliku tekstowego i użyj funkcji wyłuskiwania wiadomości(tekstu). W ten sposób uzyskasz numer telefonu i wiadomość

funkcję wyłuskiwania wiadomości ( tekstu ze stringa) znajdziesz na forum w starszych tematach.

p.s
Jeżeli jest zamykana główna aktywność to dodaj nową i w niej zadziałaj z wiadomością.
Dzięki tej metodzie możesz bardzo wiele np. odbierać sms-y tylko z wybranych numerów a resztę ignorować.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2017, o 22:33 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 280
Pomógł: 15

Obróbkę smsa mam już zrobiona. Problem polega na tym, że smsa do tableta będę wysyłał gdy tablet jest uśpiony. Program od Ciebie uruchamia się i powiadamia mnie ze doszedł. Jednak w uśpieniu nie wysyła nic przez Usb. Gdy tablet nie jest uśpiony,a tylko apka wyłączona to ta operacja jest poprawnie przeprowadzana. Samo zapisanie do pliku tekstowego mi nic nie da ,bo chce żeby program zareagował natychmiast po otrzymaniu sms.
Najlepiej dla mnie byłoby gdyby po otrzymaniu smsa w stanie uśpienia włączała się apka ,która by sobie wszystko już sama zrobiła. Tego niestety nie wiem jak zrobić. Ewentualnie tylko wybudzić androida ,a dopiero później wysłać dane do procka. Tylko jak się wybudza :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2017, o 07:36 
Offline
Użytkownik

Dołączył(a): 19 gru 2015
Posty: 37
Pomógł: 0

Nie wiem jak to robisz ale pamiętaj że moduł serwisowy to nie zwykła aktywność. Ja u siebie zrobiłem tak ze mam selekcję numerów (w module serwisowym) gdy spełniony jest warunek to wywołuję dodatkową aktywność poprzez startactiviti(np.alarm) i tam robię co chcę . Aktywność główna main służy tylko do logowania się do programu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2017, o 14:58 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 280
Pomógł: 15

Witam! Na razie to Twój program i dodałem do testu tylko prosta obsługę usb i wysyłanie stringa. Gdy android nie jest uśpiony (apka wyłączona) to po otrzymaniu smsa wysyła stringa do procka. Gdy android spi tez otrzymuje smsa ale już nic nie wysyła. Znalazłem jakiś program ,który po otrzymaniu sms uruchamia moja apke i wtedy działa nie zależnie czy jest uśpiony czy nie. Ten program go budzi. Tylko to tak trochę na około jest. Mógłbyś napisać o tym startactiviti? Musze powołać jeszcze jeden moduł? Tu jest to co dodałem do programu

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Docelowo tablet będzie w samochodzie i po otrzymaniu smsa w zależności jakie będzie polecenie to albo włączy/wyłączy webasto ,albo wyśle mi odczyty napięcia i temperatury. Dlatego fajnie by było gdyby" serwis moduł (s1)" uruchomił moduł w którym to wszystko będzie i to on mi już będzie wysyłał co trzeba. Nie wiem czy w dobrym kierunku kombinuje



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2017, o 17:34 
Offline
Użytkownik

Dołączył(a): 19 gru 2015
Posty: 37
Pomógł: 0

Ten filtr statyczny w module s1 nasłuchuje tylko nadchodzące wiadomości i reaguje na każdą przychodzącą wiadomość, może ignorować a może podjąć jakieś działanie ale w drugą stronę to nie zadziała.

Pytałeś o startactiviti (nie wiem czy o to chodzi) wchodzisz do Project potem Ad New Module następnie Activiti Module, nadajesz nazwę (bez polskich znaków) i powstaje nowa aktywność którą możesz dowolnie wywołać z innej aktywności poleceniem
startactiviti(nazwaaktywności)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2017, o 18:51 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 280
Pomógł: 15

O teraz jest gitara. Działa tak jak chciałem. Przynajmniej na razie. Wcześniej próbowałem wywoływać główne activiti i wywalało mi apke. Jeszcze małe pytanie czy jest możliwość korzystania z tych samych zmiennych pomiędzy dwoma activiti? Wielkie dzięki za pomoc.
Dałbym "pomógł" ale nie umiem :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2017, o 20:08 
Offline
Użytkownik

Dołączył(a): 19 gru 2015
Posty: 37
Pomógł: 0

Też tak chciałem ale nie działa myślałem że jak powołam zmienną w globals to będzie widoczna w każdym activiti ale chyba tak nie jest. Przyznam że sam bym chętnie skorzystał z podpowiedzi ( jedna zmienna wspólna dla wielu aktywności)bo ilość zmiennych w mojej apce już zaczyna mnie przerażać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 maja 2017, o 21:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 594
Pomógł: 47

Cytuj:
ak powołam zmienną w globals to będzie widoczna w każdym activiti

Jest taka możliwość, nawet jak dobrze pamiętam wykorzystuję taką możliwość w mojej aplikacji, jak będę przy komputerze to zerknę jak to zrealizować.

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 08:02 
Offline
Użytkownik

Dołączył(a): 19 gru 2015
Posty: 37
Pomógł: 0

To poszukaj z łaski swojej, bo bardzo chętnie bym skorzystał.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 12:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 lut 2013
Posty: 594
Pomógł: 47

Cytuj:
To poszukaj z łaski swojej, bo bardzo chętnie bym skorzystał


Ok już znalazłem.
Ja odwoływałem się do zmiennych poza modułem, podaję nazwę modułu.zmienna np:
będąc w Starter odwołuję się do zmiennej w Main w taki sposób:

Main.flafa = True

Mam nadzieję że oto ci chodziło.

_________________
https://www.instagram.com/myfirstquadcopter/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 13:49 
Offline
Użytkownik

Dołączył(a): 19 gru 2015
Posty: 37
Pomógł: 0

Dzięki muszę spróbować. Generalnie to chodzi o to aby mając dwie aktywności np podstawową Main i np drugą main2 (itp.) zmienne z jednej były widoczne w drugiej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO