Hirdetés
- Szünetmentes tápegységek (UPS)
- Úgy állhat le a 16 GB-os GeForce RTX 5060 Ti gyártása, hogy közben nem áll le
- 3D nyomtatás
- LG LCD és LED TV-k
- Xiaomi Mi Box androidos médialejátszó 4K és HDR támogatással
- Picit gazdaságosabb és halkabb lett a PlayStation 5 Pro legfrissebb verziója
- Fejhallgató erősítő és DAC topik
- Projektor topic
- XMLTV EPG letöltő progi
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
Új hozzászólás Aktív témák
-
pittbaba
aktív tag
vgyuri: Sajnos nem jó, mert tudnom kell adminisztrálnom. Az egész ajtónyitó arra kell, hogy ne kelljen szaladgálnom két emelet, hogy a lépcsőházba felengedjem az ügyfelet. Na most ha minden új ügyfelet fel kell vegyek a telefonkönyvbe ahhoz hogy be tudjon jönni, ugyanúgy le kell szaladgáljak hozzáadni. (tudom-tudom miért nem elég ha én nyitogatok, de akkor meg csengő kell, ráadásul folyamatosan vacakolhatok a telefonommal, plusz nem csak nekem van itt irodám ha más is kitalálja h ezt meg azt adjak hozzá akkor hajamat tépem) Egymillió módon meg tudtam volna ezt oldani egyszerűbben, ha nem kellene tudnom távolról adminisztrálni úgy, hogy még a WIFI is instabil amin lóg. Én ha fejlesztek akkor úgy fejlesztek, hogy minden hibalehetőség be legyen számítva, éppen hogy kalapáccsal nem csapkodom meg a tesztkészüléket
Lehet működött volna ez sokkal egyszerűbben, de minden számításba véve ez az egyetlen életképes megoldás. -
pittbaba
aktív tag
Sziasztok!
Mindenhol azt olvasom, ha alarmmanagerrel oldom meg időnként az app futásának ellenőrzését, akkor ha az app véletlenül leáll, az akkor is működni fog, hát nálam ez nem igaz valamiért. Szépen működik az időzítés, beállítottam, hogy x mp-ként ismétlődő alarmmanager elindítja az app ellenőrző service-t, megy is, csekkolja, ha háttérbe kerül a program előhozza, viszont ha feladatkezelőben bezárom az appomat, valamiért elszáll az alarmmanager időzítés is, nem indítja a service-t. Miért lehet?
MainActivity-ből OnCreate-nél://CheckAppService futás ellenőrzés
Intent startSerciveIntent = new Intent(this, CheckAppService.class);
PendingIntent pintent = PendingIntent.getService(this, 0, startSerciveIntent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 5000, pintent); -
pittbaba
aktív tag
Úgy indult, de mivel a lényeg pont az, hogy nem biztos h mindig neten tud lenni, a wifi instabil, viszont nyitnia mindig kell, ezért lett a választás a localhost, na meg a sebesség miatt is. Szóval ha elfelejtek előfizetni internetre, akkor sincs kimaradás, ha lefüstöl a router akkor sem. Naponta több mint 100 alkalommal van belépés, így fontos lenne hogy offline is működjön.
Most próbálom megoldani okosba, több időt kap a webserver reboot után, így eléggé összekapja magát és most mint ha ez a része jól menne (még sok tesztelés vár rá)
Sajnos a IOIO miatt előtérben kell tartani az appot, most átgondoltam az alapján amiket mondtatok, és sikerült kicsit barátságosabban megoldani a futás ellenőrzést.
A service dolog bevált, onPause-nál meg egy változót átbillentek igazra így a service-nek meg tudom mondani, hogy éppen fut e a program, vagy csak háttérben van, és ehhez képest előtérbe hozom, vagy elindítom. Még nem hibátlan mindig, de már egy szebb megoldás. Köszönöm a mai tanácsokat
-
pittbaba
aktív tag
válasz
WonderCSabo
#1725
üzenetére
Vannak letölthető appok amik csomagban adnak webservert php modullal illetve mysql servert, és phpmyadmint. Ilyeneket próbáltam, volt amit meg is vettem, de mindegyiknél az a baj, hogy a server indítása gombnyomáshoz kötött, ami meg esetleg beállítható h bootkor startolja a servert az is néha bugos, nem indul a server automatikusan telefon reboot után, de a webservert kezelő app fut.
Ilyenkor az én appom ezt érzékeli és újraindítja a webservert kezelő appot, de az továbbra sem mindig indítja el magát a webservert. Ezért olyan megoldás kellene, hogy lenyúlok magáig a webserver programig és azt indítom.
A webserver azért kell, hogy le tudja kérni a programom hogy az adott bejövő hívás telefonszáma benne van e az adatbázisban, mert csak akkor nyit az ajtó. Azért nem sima appon belüli adatbázist használok, mert valahogy távolról tudnom kell adminisztrálni, ezért json -al adom át az adatot a mysqlből az appnak.Mivel szeretném hogy minden éjszaka legyen egy automatikus reboot, ezért fontos hogy megoldjam reboot után minden felálljon rendben, ha pedig nem akkor próbálja javítani.
Remélem sikerült normálisan leírnom.

A ciklusokat értem, sokat tanulmányoztam, rengeteget teszteltem már, de még mindig hajlamos vagyok bekavarodni.
-
pittbaba
aktív tag
Hunfatal: Ez tök jogos igen...
Karma: Igen, akik erre kerestek választ, volt hogy ezt találták végső megoldásnak. A baj ha fejlesztés végén vagyok már, és most ezért átszervezni az egészet.. hát nem tudom... főleg hogy már minden működni látszik, és most ilyen idiótaságot kell debuggolni...A service egyébként tényleg nem volt egy nagy ügy, már szépen működik is. Azt nem értem, hogy ha feladatkezelőben kilövöm az appomat akkor a service miért áll le, hisz pont az lenne a dolga hogy ne tegye ezt?
Nem a memória ürítése részt használom, hanem feladatkezelő, s az appomat kiválasztva befejezés. A service-ben lévő handler ami időről időre csekkolja a háttérben h fut e az alkalmazás is elhal. Miért?Telefonos kapunyitót akarok készíteni IOIO van a telefonra kötve, egy éve szórakozok vele, hogy stabil legyen, de lassan feladom, mert egyszerűen mindig kijön valami hiba amivel nem tudok mit kezdeni.
Fut egy webserver app is a telefonon az csinálja a legtöbb gondot, mert egyszerűen egyik WS appot sem képesek megcsinálni úgy hogy a háttérben automatikusan elinduljanak a szolgáltatások

Sajnos az USB kezelés is vicc, 5-ből 2x kapaszkodik össze a IOIO-val és csak rebootokkal lehet orvosolni ha nem sikerül, ezért szeretnék írni egy önjavító funkciót, ha leszakad a IOIO akkor addig rebootol amíg össze nem csatlakozik. Na itt van a gond, reboot után a WS programon belül gombbal kell indítani a lighttpd-t meg a mysql-t (nem tudom mi értelme ennek így de az összes appan így van). Adjatok már tanácsot, mindig kapok itt 1-2 jó tippet amivel tovább tudok haladni, hátha most is lesz valami okosság...
Ti a webserver részt hogy oldanátok meg? -
pittbaba
aktív tag
-
pittbaba
aktív tag
Sziasztok!
Szeretném a programomat mindig előtérben tartani. Erre olyan megoldásokat találtam, hogy onPause-nál újra indítani kell az activityt ezért ha valami véletlen le is állítja az appot, akkor így újraindul. Egy handlerrel van megoldva, ami onpause-nál 10 másodperc után újraindítja az appot.
Ez általában működik is, láthatóan home gomb nyomásakor eltűnik majd visszajön stb..A gond az, hogy reboot után a telefon szintén BootReciever-el indítja az appot, és ha ilyen módon indul el (nem az sdk-ból futtatom) akkor két perc múlva valamilyen ismeretlen folyamat kilövi az appot, és a logok szerint onPause() még lefut, de a benne lévő handler már nem.
Ha nem handlerrel indítom újra akkor végtelenül folyamatosan ugye onpause-onresume felváltva futnak.
Érdekes, hogy onstopig illetve ondestroy-ig nem jut el, valahogy mégis elszáll a handler is.Ha az sdk-ból futtatom a programot, érdekes módon nem ez történik.
Az autó lockscreent is az app tiltja, ébren tartom a telefont, működik is, viszont mikor a hibajelenség felmerül, és az onPause lefut, akkor valamiért bejön a lockscreen is azonnal.
Van erre valami magyarázat? Ha kell még infó/kód, írjátok!
-
pittbaba
aktív tag
Sziasztok!
Azt szerettem volna megoldani, hogy az appban nyomok egy gombot, feljön a ringtone választó ablak, kiválasztom a szükségest fájlt, majd ennek uri-ját shared preferencesben tárolom.
Gombnyomásra feljön az ablak megvan, kiválasztáskor elkapom, megkapom a kért adatot, viszont még sem működik, mert:
Activity com.android.internal.app.RingtonePickerActivity has leaked IntentReceiver com.android.internal.app.RingtonePickerActivity$1@40513fa0 that was originally registered here. Are you missing a call to unregisterReceiver()?
Ha feljön az ablak, onpause-nál megvan az unregister a csörgésfigyelő receivernél, így az nem lehet a baj.
-
pittbaba
aktív tag
válasz
pittbaba
#1498
üzenetére
Itt a megoldás:
[link]Valamiért ha a nap elmúlt idejére időzítünk (pl: 11:00-ra időzítem a következő eseményt, de már 13:00 óra van, azt gondolná az ember, másnap 11:00-kor fog aktivizálódni, hát nem.. ), akkor azonnal aktivizálódik, és lefut az onreceive, ezért időzítés előtt vizsgálni kell, elmúlt e már az időzített időpont, és ha igen, akkor hozzá kell adni egy napot a kezdő időponthoz:
if(alarm.getTimeInMillis() <= now.getTimeInMillis())
_alarm = alarm.getTimeInMillis() + (AlarmManager.INTERVAL_DAY+1);
else
_alarm = alarm.getTimeInMillis(); -
pittbaba
aktív tag
Sziasztok!
Segítsetek nekem, mert nem értem mi zajlik..
Szeretném ha az appom újraindítaná a telefont minden nap adott óra perckor.
A reboot működik, meg van oldva, nem ez a kérdés, hanem az időzítés.
Azt olvastam, hogy erre AlarmManager a megoldás, meg is csináltam neki a reciever osztályt az egyik példa alapján ami konkrétan a google dokumentációban van.Az időzítést beállítom (on boot reciever-ben), időben elkapja az Alarm reciever, újraindítja a telefonomat. Innentől kezdve a telefon a megadott 5 perc helyett (tesztelés miatt ennyi most az intervallum nem egy nap), kb 1 percenként rebootol, nem várja meg a kezdőidőponttól eltelő öt percet. Miért?
Itt a kód:
public class RebootReceiver extends BroadcastReceiver {
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
@Override
public void onReceive(Context context, Intent intent)
{
//PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
//PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
//wl.acquire();
// Put here YOUR code.
Toast.makeText(context, "REBOOTING 14", Toast.LENGTH_LONG).show(); // For example
CancelAlarm(context);
Log.e("TAG","AUTO REBOOT NOW!");
try {
Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "reboot" });
proc.waitFor();
} catch (Exception ex) {
Log.e("TAG", "Could not reboot", ex);
}
}
public void SetTimer(Context context)
{
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, RebootReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
// Set the alarm to start at 8:30 a.m.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 15);
calendar.set(Calendar.MINUTE, 8);
CancelAlarm(context);
//alarmMgr.cancel(alarmIntent);
//AUTO REBOOT
//AlarmManager.INTERVAL_DAY
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),1000*60*5, alarmIntent);
Log.e("TAG","AUTO REBOOT BEÁLLÍTVA!");
}
public void CancelAlarm(Context context)
{
Intent intent = new Intent(context, RebootReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(sender);
}
}Itt van beállítva az időzítés a bootrecieverben:
public class BootReciever extends BroadcastReceiver
{
RebootReceiver Reboot = new RebootReceiver();
@Override
public void onReceive(Context context, Intent intent) {
Log.i("TAG","BOOT Received");
String action = intent.getAction();
if(action.equalsIgnoreCase("android.intent.action.BOOT_COMPLETED"))
{
//Reboot időzítése
Reboot.SetTimer(context);
Intent myIntent=new Intent(context,com.example.thedoor.MainActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
}
}
} -
pittbaba
aktív tag
válasz
WonderCSabo
#1491
üzenetére
Köszönöm-köszönöm!

Bár végül máshol leltem meg a pontos szájbarágósabb megoldást, a te száladon el tudtam indulni, ezer millió köszönet!
[Itt van egy jó link a bejövő hívás blokkolás android alatt kérdéshez]
Tökéletesen működik, pont ahogy szerettem volna!
-
pittbaba
aktív tag
Sziasztok!
Ezer helyen kerestem de nem találtam, hogy lehetne alkalmazásból blokkolni és háttérbe helyezni a bejövő hívásokat.
Mindenhol azt írják nem lehet, mert nincs jogosultságom, csak system appoknak engedélyezett ez. Meg is békélnék ezzel, de akkor hogy működik a sok-sok blocker app?
Remélem tudtok segíteni, mert megőrülök, hogy az egész interneten nincs erre megoldás!
-
pittbaba
aktív tag
válasz
SektorFlop
#842
üzenetére
Azzal meg az a baj, h emulatorban sem wifi, sem bluetooth, ezért hibával elvérzik az app, ez sem járható út.

-
pittbaba
aktív tag
válasz
SektorFlop
#840
üzenetére
LogCAt-et nem látok, mert BootReceiver indítani boot után az alkalmazás saját magát, így mivel teszteléshez újra kell indítani a programot, a telefon disconnectel az eclipse-ről, és nem látom a Logcat kimenetét

Nem tudom mivel van a baj, sima indításkor nincs gond, sőt ha onStop-ban indítom a MainActivity-t akkor vissza is jön rendesen, egyedül a BootReceiver-nél hibázik az indítás, hibával kilép a program a legelején. -
pittbaba
aktív tag
Arra nincs ötletetek hogy lehetne logolni, hogy milyen hibával száll el a program boot utáni automatikus induláskor?
-
pittbaba
aktív tag
válasz
SektorFlop
#827
üzenetére
Szia!
Az az út sajnos ugyanezt a hibát hozta sajnos, pedig előtérbe kényszerítéshez, onStop-nál ugyanezekkel a sorokkal visszajön a program előtérbe hiba nélkül, tökre nem értem miért szállhat el.
-
pittbaba
aktív tag
Sziasztok!
Boot után szeretnék automatikusan appot indítani. Reciever megvan, manifestben is az intent filter meg a permission is boot figyelésére.
Az alkalmazás indulna is, de azonnal hibával megáll. Simán indítva nincs baja, rendesen elvégzi a dolgát.Így néz ki a reciever:
public class BootReciever extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
// Intent myIntent = new Intent(context, MainActivity.class);
// myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// context.startActivity(myIntent);
Intent ThisApp = getPackageManager().getLaunchIntentForPackage(PACKAGE_NAME);
ThisApp.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(ThisApp.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT ));
}
Manifest idevágó része:
[M](C) <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
(/C)[/M]
[M](C) <receiver android:name=".BootReciever">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>(/C)[/M]
}LogCat-et sajnos nem látom mert újraindítással kell tesztelnem a telefont, így az disconnectel az SDK-ról.
Van ötletetek esetleg arra hogy lehetne a hosszú bootok végigvárása helyett tesztelni a boot recievert? -
-
pittbaba
aktív tag
Senki? Vagy csak nem vagytok? Egyszerűen nem hiszel el, hogy nem lehet ezt megoldani, már handlerrel időzítve hozom vissza a háttérből a programot, hagyok időt elindulni a webserver app-nak, mégis ahogy előjön az előtérbe az én appom az indított app egyszerűen eltűnik, sem a task managerben, sehol, pedig az utolsó pillanatig ott van még a statusbarban is. Semmivel nem vagyok előrébb mint reggel...

-
pittbaba
aktív tag
Az óta még próbáltam azt, hogy indítom a másik appot, majd visszahívom a hívó appot előtérbe, de akkor a háttérbe kívánt app hibával elszáll, leáll. Próbáltam egy jó nagy sleep-el váratni, hátha kell egy kis idő a hívott app-nak, de 10mp várakozás után kerül a háttérbe is leáll. Pedig elvileg úgy van tervezve az alkalmazás h háttérben fusson az a legfurcsább...
Ezzel próbáltam a hívó appot visszacsalni az előtérbe:
Intent ThisApp = getPackageManager().getLaunchIntentForPackage(PACKAGE_NAME);
startActivity(ThisApp.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)); -
pittbaba
aktív tag
Sziasztok!
Hogy tudok egy alkalmazásból elindított másik alkalmazást a háttérbe küldeni?
Egyetlen megoldás amit találok az nem működik.Így indítom a másik alkalmazást:
//WEBSERVER FUTÁS ELLENŐRZÉS/INDÍTÁS.
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
// get the info from the currently running task
List < ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);
Log.d("current task :", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClass().getSimpleName());
ComponentName componentInfo = taskInfo.get(0).topActivity;
//if app is running
if(componentInfo.getPackageName().equalsIgnoreCase(WEBSERVER_PACKAGE_NAME))
{
Log.d(TAG,"WS FUT");
}
else{
Log.d(TAG,"WS NEM FUT, INDÍTÁS");
//Intent intent = new Intent("ru.kslabs.ksweb");
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(WEBSERVER_PACKAGE_NAME);
startActivity(LaunchIntent);
}moveTaskToBack (true); - nem működik
-
pittbaba
aktív tag
Szeretnék az appom indításával másik telepített appot indítani. Root van. Megoldható? Találtam rá példát, de ott meg tudnom kellene a program csomag nevét. Ezt hol találom meg? Playről telepített App. Vagy van valamilyen bevált módszer erre?
Köszönöm! -
pittbaba
aktív tag
Lehet nem ide illik ezt, de hátha van tapasztalatotok:
Lehet olyan, hogy az egy tápra kötött IOIO board egy leddel, és az LG GT540 megy 60-70% procival alapjáraton (fent egy webserver a telon..) akkor jobban merül, mint ahogy a töltő tölteni tudja? Egy idő után leszakad a board, és szerintem azért..5.7V 1000 mA a táp, van szufla..
-
pittbaba
aktív tag
Áhh szóval így hívják ezt a megoldást
Az IOIO Looper miatt kellett ilyet használnom, példában volt, és nagyon jól működik!
A Handler is dolgozik szépen, végre készen lett az App
Telefon hívásával szám alapján és Bluetooth mac alapján adatbázisból kérdezve jogosultnak nyitja az ajtót a kis IOIO board. Nagyon jó ketyere, ajánlom mindenkinek, lehet automatizálni a pecót!

-
pittbaba
aktív tag
válasz
WonderCSabo
#778
üzenetére
Köszönöm!
A httpclient végül jobb megoldásnak bizonyult, mert jobban tudom kezelni a különböző hibákat. Egyébként igen timeout, illetve wifiről való leszakadozás okozta a kivételeket.
Most feltettem egy webservert a telefonra, így biztos nincs wifiről szakadozás
Újabb kérdésem:
Async taskban szeretnék egy boolean-t ha feltételek rendben vannak átbillenteni igaz-ra, majd 6mp múlva visszatenni false-ra. Async taskban ha megjön a JSON eredmény rendben, akkor kell, hogy a változó 6mp-ig true legyen. Thread.sleep(6000); nem jó, az utána következő parancsok is azonnal futnak le, nem várakozás után. Ez miért lehet, illetve mi a megoldás? A timerre gondoltam, h 6mp-ként megnézi az értékét és ha true, akkor átbillenti false-ra, viszont ha a timer éppen a 4. mp-nél jár, amikor átbillen true-ra a változó, majd 2mp múlva teszi false-ra az nem jó nekem. Hogy szokás ezt megoldani? -
pittbaba
aktív tag
Szerintetek JSON-t weblapról lekérni hogy a legérdemesebb?
Van ez a kód, tök jól működik, amikor működik, de néha IOExceptiont okoz, nem értem miért.Jó megoldás ez, vagy inkább httpClient?
public static String getJsonFromServer(String url) throws IOException {
BufferedReader inputStream = null;
URL jsonUrl = new URL(url);
URLConnection dc = jsonUrl.openConnection();dc.setConnectTimeout(5000);
dc.setReadTimeout(5000);
inputStream = new BufferedReader(new InputStreamReader(
dc.getInputStream()));// read the JSON results into a string
String jsonResult = inputStream.readLine();return jsonResult;
} -
pittbaba
aktív tag
-
pittbaba
aktív tag
Na soronkénti Log.v segítségével kiderítettem, hogy itt száll el:
inputStream = new BufferedReader(new InputStreamReader(dc.getInputStream()));
Kérdés, hogy miért csak akkor amikor a Timer elindítja a bluetooth pásztázást (sikeresen elindul). Ha viszont kikommentelem a startDiscovery()-t akkor megjön az eredmény szépen, ahogy kell.
-
pittbaba
aktív tag
Logcat mondja:
06-04 10:22:42.079: E/AndroidRuntime(24879): FATAL EXCEPTION: main
06-04 10:22:42.079: E/AndroidRuntime(24879): java.lang.NullPointerException
06-04 10:22:42.079: E/AndroidRuntime(24879): at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
06-04 10:22:42.079: E/AndroidRuntime(24879): at org.json.JSONTokener.nextValue(JSONTokener.java:94)
06-04 10:22:42.079: E/AndroidRuntime(24879): at org.json.JSONObject.<init>(JSONObject.java:154)
06-04 10:22:42.079: E/AndroidRuntime(24879): at org.json.JSONObject.<init>(JSONObject.java:171)
06-04 10:22:42.079: E/AndroidRuntime(24879): at com.example.thedoor.MainActivity$1GetTask.onPostExecute(MainActivity.java:133)
06-04 10:22:42.079: E/AndroidRuntime(24879): at com.example.thedoor.MainActivity$1GetTask.onPostExecute(MainActivity.java:1)
06-04 10:22:42.079: E/AndroidRuntime(24879): at android.os.AsyncTask.finish(AsyncTask.java:631)
06-04 10:22:42.079: E/AndroidRuntime(24879): at android.os.AsyncTask.access$600(AsyncTask.java:177)
06-04 10:22:42.079: E/AndroidRuntime(24879): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
06-04 10:22:42.079: E/AndroidRuntime(24879): at android.os.Handler.dispatchMessage(Handler.java:99)
06-04 10:22:42.079: E/AndroidRuntime(24879): at android.os.Looper.loop(Looper.java:137)
06-04 10:22:42.079: E/AndroidRuntime(24879): at android.app.ActivityThread.main(ActivityThread.java:4931)
06-04 10:22:42.079: E/AndroidRuntime(24879): at java.lang.reflect.Method.invokeNative(Native Method)
06-04 10:22:42.079: E/AndroidRuntime(24879): at java.lang.reflect.Method.invoke(Method.java:511)
06-04 10:22:42.079: E/AndroidRuntime(24879): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
06-04 10:22:42.079: E/AndroidRuntime(24879): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
06-04 10:22:42.079: E/AndroidRuntime(24879): at dalvik.system.NativeStart.main(Native Method) -
pittbaba
aktív tag
Újabb kérdés:
Még nem értem pontosan, de úgy tűnik, valamiért elszáll az app miközben a háttérben fut egy async task(egy json lekérés), a Timer indít egy startDiscovery(); metódust.
Mi okozhatja? -
pittbaba
aktív tag
Érdekes, mert kipróbáltam azt, hogy feliratkozok a ACTION_DISCOVERY_FINISHED eseményre, és ott újra indítom a Discovery-t, de valamiért a ACTION_DISCOVERY_FINISHED esemény soha nem következik be, pedig megjönnek szépen az eredmények a talált eszközökről.
-
pittbaba
aktív tag
Sziasztok!
Éppen én is a bluetooth részt csinálom az appomhoz, nekem annyi kellene, hogy ha közelben elsétál egy látható bluetooth eszköz, akkor annak megkapjam a paramétereit. Sikerül az app elindításával startDiscovery();-vel egy alkalommal kinyerni a közelben levő eszközök listáját, de hogy tudom ezt megoldani úgy, hogy állandóan scanneljen? (A telefon örökkön örökké tápon csücsül, nem para az aksi)
-
pittbaba
aktív tag
Szia!
Megint csak nem baj, ha root kell. Ajtónyitót csinálok, a telefon meg az ioio egy dobozban fog csücsülni, így a root-al nincs gond. A módszer érdekelne, mert csak azt találom mindenhol hogy impossible. Van egy megoldás, de az már a permission-ök miatt nem működik elavult megoldás, nekem nem is sikerült.
Engem pont ez mozgat, hogy van egy csomó call blocker program, én meg nem tudom megoldani...

-
pittbaba
aktív tag
-
pittbaba
aktív tag
És még egy kérdés: Meg lehet e oldani valahogy, hogy mikor hívják a telefont, a hívás maradjon a háttérben, és az alkalmazás az előtérben?
Sajnos onDestroy-t okoz az alkalmazásban, ha hívják a telefont, ami nekem nagyon kellemetlen, mert az IOIO board is leszakad a programtól, és nullázódnak az állapotok. -
pittbaba
aktív tag
Sziasztok!
Bejövő hívást hogy lehet "kinyomni"? Szuperül kezeli a bejövő hívást, szépen kinyerem a hívó telefonszámát megcsinálom amit szeretnék, de nem tudom lezárni a bejövő hívást sehogy sem, google meg olyanokat hoz elsőre, hogy ez lehetetlen, de én meg nem hiszem el.

Tipp? -
pittbaba
aktív tag
Nekem root-al tökéletes lenne, mert csak annak a telefonnak kellene tudnia ezt, amelyik folyamatosan az IOIO-n lóg egy dobozban
Több helyen láttam már hogy GPS-t és 3G-t is lehet ki be kapcsolni pl anti stolen progiknál, ráadásul érdekes módon én most fel tettem egy programot, amivel root nélkül is tudom kapcsolgatni az usb debug módot, nem értem, hogyan. Nem kérte a jogot, még is kapcsolgat. ( Nem, mégsem, megnéztem, és csak illúzió volt, nem dolgozik a gomb ) -
pittbaba
aktív tag
Köszönöm, ez érdekesnek tűnik, meglátom mire jutok vele. Hogy kerestél rá? Órák óta nézem a google-t de mindenhol csak a mocsok menürendszert hozta
Kinek van ideje menüben vacakolni ha appot is lehet rá? 
Remélem sikerül, írom azonnal.Remélem nem gáz, de nyitottam egy témát az ioio-nak, akit érdekel esetleg a dolog, első lépéseket leírtam, meg az első végigszenvedett hibákat, hogy másnak ne kelljen:
[link] -
pittbaba
aktív tag
Sziasztok!
Esetleg valaki tudja hogy lehet Usb debugging módot appal kapcsolgatni, csekkolni? Mindenhol a google csak a menüből való kapcsolgatást hozza, nem lelem, hogy lehetne ezt appal..
Vettem egy IOIO-t ahhoz kellene néha csekkolni van e kapcsolat. -
pittbaba
aktív tag
Sziasztok!
Szeretnék egy ajtónyitót csinálni az egyik kihasznált Androidos telómból. A programozás résznél egyelőre nem tartok, de ahogy néztem, eléggé könnyen megoldható, viszont az elektronikai résszel bajban vagyok. Találtam több netről rendelhető usb-s relay boardokat, de attól félek, arra rádugom a telefonomat, és nem fog töltődni USB-n keresztül, ami kellemetlen. Az usb kábel szétbarmolásával meg lehetne oldani a tápellátást, de inkább titeket kérdeznélek meg előbb, van e valamilyen bevált kütyü erre, ami esetleg tölti is a telefont USB-n keresztül miközben rajta lóg?
-
pittbaba
aktív tag
Újabb kérdésem:
Async taskból feltöltöm a listview-ot, kijelző elforgatásával viszont üres lesz a ListView.
Ezt is a getLastNonConfigurationInstance(); segítségével kellene megoldanom?Nem szeretném az Async taskot csak az elforgatás miatt újra indítani, váratni a usert a lekéréssel, stb, ezért lenne jó, ha destroy után valahogy vissza tudnám adni az értékét.
-
pittbaba
aktív tag
Na még valami:
ListView-et akarok kitölteni az async task onpostexecute metódusában, de a setListAdapter metódust elvileg nincs definiálva. Több helyen is így láttam a példákat, nálam miért nem működik?
Így néz ki a dolog egyébként:JSONObject jsonobj = new JSONObject(result);
next_starts = jsonobj.getJSONArray("next_starts");
for(int i = 0; i < next_starts.length(); i++){
JSONObject c = next_starts.getJSONObject(i);
String id = c.getString("departure_time");
//Log.v("TAG","INDULÁS:"+id);
HashMap<String, String> map = new HashMap<String, String>();
JSONObject e = next_starts.getJSONObject(i);
map.put("id", String.valueOf(i));
map.put("start_time", "Codename: " + e.getString("departure_time"));
//map.put("cc", "Country Code: " + e.getString("countrycode"));
mylist.add(map);
}
ListAdapter adapter = new SimpleAdapter(callerActivity, mylist , R.layout.start_times_listview,
new String[] { "start_time"},
new int[] { R.id.start_times});
setListAdapter(adapter);
Log.v("TAG","JSON FELDOLGOZVA"); -
pittbaba
aktív tag
válasz
pittbaba
#537
üzenetére
Találtam egy kérdéses részt az utolsó előtti részben, nekem kifagyás lett az eredménye, de lehet csak az én logikámban kell máshogy.
StarTask metódusnál az indítás előtti feltételed:
private void startTask(String route_id ,String stop_id){
try {
if (async_task == null || async_task.returnedResult !=null) {
indulhat_a_task... }Ebben az esetben akkor is indul a háttér task, ha már lefutott, de már megvan az eredmény. Szerintem csak akkor kell futtatni, ha a task nem fut(ott), vagy ha nincs eredmény. Így a hibajelenség is megszűnt.
if (async_task == null || async_task.returnedResult ==null) {
-
pittbaba
aktív tag
Rendben, nagyon lassan haladok, mert közben rendes melót is csinálom, de odaérek lassan, és akkor kiderülnek a dolgok számomra

A tesztelésben biztos sokan benne lesznek, sok a fanatikus szerencsére ..
Csak érdekességképpen kérdezem, nem annyira fontos a program szempontjából, de miért lehet, hogy a getContentLength() -1-el tér vissza? Egy ideig jól adta vissza nekem a várt csomagméretet, de mióta JSON bemenetet kap, nem html-t, valamiért ezt kapom vissza. Mi okozhatja?
-
pittbaba
aktív tag
Én itt élek Pesten évek óta, de nem itt nőttem fel, így ez a funkció lesz, igazából pont erre építem az alap szerkezetet. Jó lenne, valami irányzék is, hogy pontosan helyileg oda tudjon menni a user a megállóba, de az később, a kiadott adatbázis amúgy sem a legpontosabb eddigi tapasztalat szerint, de majd.. ez még új dolog

A kérdésem erre a részre vonatkozott:
Ezen a ponton átalakítottuk a belső TimeConsumingTask osztályt static típusúvá, vagyis egyetlen timeConsumingTask létezhet. Hogyan tudnánk ezt megőrizni, miközben az UI-szálon futó alkalmazásunk újraindul? Az Alkalmazkodjunk az új környezethez! Felületi változások c. cikkben már beszéltünk az onRetainNonConfigurationInstance() metódusról, mellyel egy értéket meg tudunk őrizni a program újraindulása alatt. ((Megjegyzendő, hogy ezt a módszert a Honeycomb rendszertől kezdve érvénytelenítették. Az új módszer azonban a Fragment-ek beható ismeretét igényli, ezzel később (ha a gépünket Jelly Bean-re frissítettük) részletesen foglalkozunk.))Én is a frissítés gombra gondoltam megoldásnak, csak nem tudom érteni fogja e a user magától, hogy ha nincs indulási időpont, akkor neki a frissítés gombot kell nyomkodnia, de kitalálom.
Galaxy S2-n meg mini-n tesztelek, még én sem foglalkoztam a tablet méretekkel..
És még valami: Én külön fájlba vettem az Async osztályomat, nem engedi static-ra rakni, hogy ne fusson több egyszerre, azt a hívó activity async startoló metódusában csekkoljam indítás előtt?
-
pittbaba
aktív tag
Szia!
Igen, ma fogok ott tartani gyakorlatban is, hogy a szebb megoldásokat is lépésről lépésre beépítem a programomba. Lesznek nehezítések még a cikked példájához képest, biztos, hogy fogok még kérdezni a témában. Saját adatbázisból próbálom lekérni a kiválasztott BKV járat legközelebb induló járatait. Mivel a legtöbb infót az offline sqlite db-ből szedi, viszont az érzékenyebb nagyobb lekéréseket már a netről, ezért kell nekem főleg az Async task, mivel az adatok egy részét (vonal neve, megállók) már kiírom kiválasztás után rögtön, de lehet az internetről szerzett adatok csak később érkeznek meg és íródnak ki. Szerintem itt jogos az AsyncTask használata. Viszont mi van, ha éppen nem sikerül neki számomra megfelelő adattal visszatérni, mert mondjuk pont nem kapaszkodott fel a wifi? Azt is kezelnem kellene. Illetve, ha elmúlt az adott időpont (elment a következő járat ) akkor újra csináljon egy lekérést, már a frissebb indulási időpontokkal visszatérve, valahogy rá kell vegyem, hogy a háttérben emberi időközönként frissítsen.
A konkrét kérdésemre is megkaptam a választ, annyi volt a gond, amire számítottam is, osztálynévvel ki kellett egészítenem a változónevet, így már látja a változót, nem ír hibát! (van egy temérdek hiányosságom Javaból, PHP-ban dolgozom, nehéz átállni és néha csak úgy nem akar jönni a megoldás)
A cikk kapcsán felmerült egy kérdés: Az érték megőrzése ha bezárult az alkalmazás dolog írtad, hogy a példádban már lejárt. Mikor várható leírás ennek az újabb verziójáról? Fragmentekre kell rákeresnem? Ott lesz a megoldás?
A téma áthelyezése szerintem úgy lenne a legetikusabb mindenki számára, ha innen a diskurzus részeit néha bemásolod a cikked alá is. Mivel valóban ez az egyetlen magyar fórum itt van, hagy legyen meg itt is az érdeklődők számára, hasznos lesz ez egy év múlva, ha már többen mennek neki az Android home fejlesztésnek.
-
pittbaba
aktív tag
Most lehet hülyeséget kérdezek, de a 3. cikkedben az async taskban csinálsz egy metódust, ami a bezárásokkor a timeconsumingtask-nak null értéket adsz. Azt nem értem, hogy az async taskból hogy fér hozzá a hívó activityben létrehozott példányhoz? Nekem olyan hibám van, hogy nincs ilyen változó deklarálva. Mit rontok el?
-
pittbaba
aktív tag
Köszönöm a részletes magyarázatot, egy előre elég lesz nekem az onPostExecute ban feldolgozni az adatokat, ez a trigger dolog viszont érdekes lehet! Most éppen a cikked alapján megcsinálom a kezelést elforgatásra, back gombra stb, hogy jól be legyen betonozva, ezek valóban kötelező feladatok itt.
A cikkeket alig várom, én biztos rámegyek megint, ha jönnek új infók.
-
pittbaba
aktív tag
ÓÓ hogy ezt te követted el? Akkor először is
és

Ismerősek voltak a szavaid, ezek alapján haladtam én is, de nem láttam, hogy kitértél e arra, hogy hogy kapja meg a hívó az async task által lekért eredményeket.Nagyon jó a cikk, a teljes ködös semmitnemértek ebből verzióból a nagyjából átlátom részig sikerült fejlesztenem magam miután átrágtam a cikket, köszi, nagy segítség.
Igen, ezen gondolkodtam én is, hogy mivel ez háttér folyamat, közben pont az a lényeg benne, hogy az activity meg közben azt csinálja ami a dolga, ne erre várjon, így az asyncen belül érdemes feldolgozni az eredményeket ha jól értem.
Én úgy gondoltam, hogy paraméterben kap az async egy stringet, hogy hogyan dolgozza fel a kapott eredményt, és hova írjam ki éppen. Gondolom nem érdemes minden alkalomhoz külön teljes Async osztályt létrehozni.(?)
Sok ilyen hasznos cikket még!

-
pittbaba
aktív tag
Igen, ezt vágom is, egy kicsit bonyolultabban de mégis egyszerűbben akartam megoldani. A meghívó activitin belül nem tudom visszakapni az értéket, csak az onPostExecute-n belül, ezért kicsit nehézkesebb a feldolgozás, hogy innen-onnan hívom meg, de nem ott tudom feldolgozni az eredményt.
Így is jó egyébként, csak paraméterben akkor el kell küldenem, hogy éppen hogyan dolgozza fel az Async taskon belül az eredményt. -
pittbaba
aktív tag
Sziasztok!
JSON formátumú weblap tartalmát szeretném AsyncTask segítségével lekérni, majd az AsyncTaskból valahogy a fő szálamba visszaadni a kapott eredményt (String).
Hogy lehet ezt kivitelezni?
-
pittbaba
aktív tag
válasz
WonderCSabo
#433
üzenetére
Jogos, köszönöm!
-
pittbaba
aktív tag
Sziasztok!
Lehet lesz jobb tippetek, de úgy fest, nem fogom tudni megoldani az offline BKV menetrendet. Sajnos 150Mb-os adatbázis file-al nem bír el már az SQLite, egy lekérés olyan 10 perc... Pedig hiba nincs, az adatok megjönnek, egyszerűen a stop_times tábla annyira nagy, hogy megáll az élet
Ötlet,trükk lekérdezésre android alatt? Hátha..A feladat: GPS koordináták alapján megállapítani melyik megállóban van a user ( ez megy hibátlanul már ), majd kiíratni milyen járatok haladnak át ezen a megállón.
Sajnos a mocskos GTFS adatbázisban 3 táblát kell ehhez összejoinolni, a stops, a stop_times, és a trips táblákat, nem találtam rövidebb utat. Lehetséges hogy ha nem JOIN-al csinálom, hanem 3 lekéréssel egymás után, akkor gyorsabb lesz? Az eredményeket GROUP-oltam (GROUP BY stop_times.stop_id), hátha gyorsabb lesz, de így sem.
-
pittbaba
aktív tag
Köszi!
Azóta már még több problémám keletkezett.
Elsőre a megoldás :
line = line.replaceAll(",(?=,)", ",NULL");Ekkor az lett a baj, hogy a vesszők közötti értékek közül is a stringeknek kell ' ' vagy " " így könyebbé vált a helyzetem:
line.replaceAll(",","','");
Ekkor jött a meglepetés, miszerint vannak olyan tartalmak ahol egy cellának az értéke:
y,x,"Kis,Pál utca",a,bEbből ez lesz:
'y','x','"Kis','Pál utca"','a','b'Így a Kis, Pál utca stringet kettévágtam, csúszik az adat feltöltése az adatbázissal, több tartalom lesz mint cella stb..

Ez sem jó...Egy olyan reg.expr kellene nekem ami megoldja a fenti problémámat:
Ha vesszőt lát, tegyen a két oldalára aposztrófot, kivéve ha úgy lát vesszőt, hogy az két " " közötti szöveget választ el, akkor ne csináljon a vesszővel semmit.
Tipp?
Biztos megoldható... -
pittbaba
aktív tag
Szép estét mindenkinek!
Egy String változóban vannak nekem az adatbázis inserthez a tartalmak, vesszővel elválasztva.
234234,"mihály utca",21.123123,56.56456456,,,,,2,
Hogy oldanátok meg, hogy a Stringben ahol két vessző van egymás mellett, azt ,null,-ra cseréljem a stringben?
Az adatbázis insert hibát ír ha semmilyen nulla értéket nem adok meg az üres mezők helyére.(,null, vagy ,'',..)GTFS txt-ket szeretnék SQLite adatbázissá konvertálni, minden áll a lábán, már csak ennyi hiányzik a programból, de nem jövök rá milyen reguláris kifejezéssel lehetne ezt cserélni.
A sima megoldás: str.replace(",,",",null,") nem jó, csak az elsőt cserélni, replaceAll eredménye pedig:
234234,"mihály utca",21.123123,56.56456456,null,,null,,2,
-
pittbaba
aktív tag
Igen! Az egész Loader framework-öt nem értem pontosan hogyan és mire kell használni.
Több dologra is megoldás lehet, az elavult StartManagingCursor-t is felváltaná, ráadásul most pont olyan programot próbálok írni, ami a GTFS txt-ből megcsinálja a SQLite adazbázist, ez sokezer sor, ami miatt az alkalmazás úgy gondolja fölöslegesen vár, és figyelmeztet, megkérdez, akarom e leállítani a futást. Elvileg megoldható, hogy ezek a háttérben fussanak. -
pittbaba
aktív tag
válasz
pittbaba
#400
üzenetére
Az egyik kérdésemre megtaláltam a választ, hiányzott a stopManagingCursor(cursor);
Azt még mindig nem tudom pontosan, mi az újabb technika a Kurzor feldolgozására. Elvileg lehet valahogy a háttérben futtatni ezeket a kéréseket, ennyit tudtam az angolból értelmezni, de a példák alapján sem tudtam megoldani. Tudtok segíteni?
-
pittbaba
aktív tag
Sziasztok!
Azt írja nekem az eclipse hogy elavult a startManagingCursor metódus, interneten több helyen a Loadermanagerre hivatkoznak. Mi ez, hogy működik, mivel jobb? Van e valami jól átlátható példa?
A startManagingCursor-al működik az adatbázis lekérdezés, megkapom a kurzorokat, szóval elvileg ezzel a módszerrel is jó, de azt olvastam összeomlást okozhat, néha ha háttérből jön elő az alkalmazásom, van is, hogy erre hivatkozva fatal erroral kilép: Trying to requery an already closed cursor.
-
pittbaba
aktív tag
Sziasztok!
BKV-s app készítésben vagyok, az általuk kiadott GTFS formátumból szedem ki az adatokat.
Két gyors kérdésem lenne, háhta tudtok segíteni:Hogyan érdemes, milyen matek alapján kerekíteni a GPS koordinátákat?A megálló nevét akarom kinyerni, ahol éppen áll a user, és jó lenne ha ilyen 10méteres körzetben már működne, nem csak ha a pontos GTFS-ből kinyert gps koordinátánál áll.
Ha felszáll az utas egy megállóban eléggé leszűkíthető a járatok száma amire éppen felszállt, amikor elkezd haladni a járművel, milyen elgondolás alapján lehetne szűkíteni hogy melyik járatra szállt?
Pl.: a 2-es 24-es villamos A Közvágóhídtól a Haller utcáig egy úton megy, ezért lehetetlen megmondani melyiken utazik éppen, viszont a Haller után már eldönthető. A GTFS adatbázis nyújt e valamilyen könnyű lehetőséget, kiszámolható e valami módon, vagy gyűjtenem kell az érintett megállókat és azok alapján feltételrendszert kidolgozni?
Kellemes napot kívánok mindenkinek!
-
pittbaba
aktív tag
Sziasztok!
Szeretnék az alkalmazásomhoz belső adatbázist csatolni, amit nem az internetről ér el, hanem a készülékről. Mivel ez nem az appal együtt töltődik le és tárolódik, nem tudom megoldani, hogy a programban frissíthető legyen. Keretem megoldásokat, de nem igazán sikerült megértenem.
Milyen megoldást ajánlatok?
Gombnyomásra töltse le az sd kártyára az adatbázis fájlt, és az alapján írjam felül a régebbi adatbázist sorról sorra? Vagy van jó megoldás arra, hogy közvetlenül a fájlból nyissam meg az adatbázist? -
pittbaba
aktív tag
Sziasztok!
Ötleteket keresek annak a megoldására, hogy hogyan oldanátok meg GPS koordináták alapján, hogy beazonosítható legyen, a felhasználó melyik tömegközlekedési eszközön utazik Budapesten, vagy melyik megállóban áll.
További kellemest mindenkinek!
Új hozzászólás Aktív témák
- BestBuy topik
- Honor Magic V5 - méret a kamera mögött
- S.T.A.L.K.E.R. 2: Heart of Chornobyl
- WoW avagy World of Warcraft -=MMORPG=-
- Linux felhasználók OFF topikja
- Renault, Dacia topik
- Hardcore café
- Samsung Galaxy Felhasználók OFF topicja
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- További aktív témák...
- BESZÁMÍTÁS! ASUS H510M i5 11400F 16GB DDR4 512GB SSD RX 6600XT 8GB Zalman T4 Plus Cooler Master 650W
- Gamer PC- Számítógép! Csere-Beszámítás! R5 5500 / RX 6700XT 12GB / 16GB DDR4 / 1TB Nvme SSD
- HP 200W töltők (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm, 928429-002
- LG 34WQ75X-B - 34" Ívelt IPS Panel - 3440x1440 2K QHD - 60Hz 5ms - FreeSync - USB Type-C 90W
- HP EliteOne 800 G5 All-in-One i5-8500 16GB 512GB 23.8" Érintőkijelző!! 1 év garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest
Lehet működött volna ez sokkal egyszerűbben, de minden számításba véve ez az egyetlen életképes megoldás.




Így most ezt átrágni nem lesz egyszerű e miatt, de rámegyek valamikor





