Hirdetés

2024. június 10., hétfő

Gyorskeresés

Hozzászólások

(#551) thon73 válasza pittbaba (#547) üzenetére


thon73
tag

A példaprogramban az eredményt az AsyncTask osztály tárolja, mert az az újraindításnál megmarad(hat). Az újrainduló Activity létrehozza az üres ListView-t, de azt az AsyncTask osztály tölti fel. Mivel az már lefutott, ezért a beépített rutinok nem indulnak el. Én külön is választottam az eredmény kijelzését végző updateUI-t. Mivel a ListView adatait az adapteren keresztül kapja, lehet, h. elegendő annak megadni az AsyncTaskban tárolt adatokat. Ilyenkor arra kell vigyázni, hogy az Asynctask létezzen az adapter indítása előtt. (Vagy az ellenőrizze a meglétét)
Ezt a "hibát" nem lehet egy sor átírásával megoldani, a program szerkezetét kell megfelelően elrendezni.

[ Szerkesztve ]

(#552) doboka98


doboka98
tag

Sziasztok! Az a helyzet, hogy szeretnék készíteni android appokat, és nem tudom hol kezdjem. Programozásban már jártas vagyok, PAWN nyelvhez volt szerencsém, tehát a struktúra nem lenne nagyon ismeretlen. Valaki tudna esetleg pár videó/linket küldeni hogyan kezdjem el? Jó lenne látni egy appomat Play Marketen :D .

(#553) SektorFlop


SektorFlop
aktív tag

Sziasztok! Számomra egy nagyon érdekes problémába ütköztem. Van egy kliens oldali adatbázisom, amiben lenne egy olyan tábla, amit az első indulásnál feltöltene egy-két sorral. Viszont a későbbiekben ezt a táblát tetszőlegesen szerkeszthetné a user.

Sajnos elképzelésem sincs, hogy valósítsam meg azt, hogy csak egyszer jöjjön létre úgy az tábla. És ne töltse fel mindig azokkal a sorokkal.

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#554) SektorFlop


SektorFlop
aktív tag

Ebben mit ronthattam el?

A bankrollFilter egy spinner-t takar, aminek a tartalmát adatbázisból szedem. Az else ág eseten force close-ol

bankrollFilter.setOnItemSelectedListener(new OnItemSelectedListener() {

public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long id) {
if (bankrollFilter.getSelectedItem() == "összes"){
balance.setText("$"+db.fetchSumBalance());
} else{
String kliens = String.valueOf(bankrollFilter.getSelectedItem().toString());
balance.setText("$"+db.fetchBalance(kliens));
}
}

public void onNothingSelected(AdapterView<?> arg0) {
}
});

Ha kiszedem a SELECT -ből a WHERE feltételt akkor lefut, ha benne hagyom akkor force close.

public String fetchBalance(String kliens){
Cursor c = getReadableDatabase().rawQuery("SELECT "+ PokerKliensDBConstans.KEY_POKER_BALANCE +" FROM "+ PokerKliensDBConstans.POKER_KLIENS_TABLE +" WHERE "+PokerKliensDBConstans.KEY_POKER_KLIENS+" = "+kliens+";", null);
String strData = "";
if (c!= null) {
if (c.moveToFirst()) {
do {
strData += c.getString(0);
} while (c.moveToNext());
}
}
return strData;
}

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#555) Sianis válasza SektorFlop (#553) üzenetére


Sianis
addikt

Van a DB kezelőnek amit te tudsz örököltetni egy ilyen metódusa: onCreate. Ebben kell létrehoznod a táblákat és ebben tudod feltölteni is induló adatokkal. Ez csak egyetlen egyszer fut le, amikor legelőször létrejön az adatbázis.

Szerk: #544
Logoltasd ki, hogy mi lett a query szövege. Úgy talán egyszerűbb lesz rájönni, hogy jól állt-e össze a lekérdezés.

Sianis

[ Szerkesztve ]

(#556) SektorFlop válasza Sianis (#555) üzenetére


SektorFlop
aktív tag

Ahha, én is erre gondoltam, hogy az onCreate metódusban kell ezt is megoldani.

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#557) doboka98 válasza doboka98 (#552) üzenetére


doboka98
tag

Valaki nem válaszolna kérlek a kérdésemre? :(

(#558) Sianis válasza doboka98 (#552) üzenetére


Sianis
addikt

Ez jó kiindulás lehet, azt állítja, hogy 200 ilyen videója van.

Sianis

(#559) SektorFlop válasza doboka98 (#557) üzenetére


SektorFlop
aktív tag

kezd el a java-val. nekem is sajnos vannak benne hiányosságaim és most ütnek vissza.

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#560) Konair válasza pvt.peter (#548) üzenetére


Konair
csendes tag

Elnézést, ha félreérhetően fogalmaztam, a lényeg a kényszerített leállításon volt.
Mert ha bootcomplete-re rakom a boradcastrecievert, akkor is fenn áll ez a gond.
Kényszerített leállítás után nem hajlandó reagálni a boradcastreciever-re.
Amúgy 4.2.2, és status bar-ból kapcsolgattam.

Weboldal készítés felsőfokon...

(#561) Sianis


Sianis
addikt

[link] és keresd a Launch controls on stopped applications részt.

Az van, hogy 3.1 felett egy telepített alkalmazás receiverei nem nem hívódnak addig, amíg a felhasználó el nem indítja az alkalmazást. Addig "stopped" állapotban van. Valamint, ha FC-zed, akkor is ebbe az állapotba kerül ([link]), amiből csak akkor mozdul ki, a felhasználó elindítja.

Sianis

(#562) Konair válasza Sianis (#561) üzenetére


Konair
csendes tag

Sajnos ettől féltem, igazából UI nem is lenne, úgyhogy ezzel számolnom kell.

Nagyon szépen köszönöm a felvilágosítást és a linkeket! :R

Weboldal készítés felsőfokon...

(#563) thon73


thon73
tag

Most kezdtem el ismerkedni az Android/SQLite párossal. Lenne egy elméleti kérdésem:
Ha van egy gigantikus adatbázisom, lehetséges-e azt rendezetten tartani, és (a rendezettség miatt) valamilyen módon a keresést felgyorsítani? (felezés, indexelés, stb., maga az algoritmus nem érdekes, csak az hogy miként lehet beletenni a rendszerbe, vagy van-e ilyen benne eredetileg)
Továbbmegyek: ha KÉT szempont szerint kell rendezni az adatbázist (legyen pl. gyógyszernév és hatóanyag páros), akkor tudok-e pl. két indexet létrehozni, és annak segítségével villámgyorsan keresni? Tehát pl. ne kelljen az adatbázist újrarendezni két keresés között, ill. ne kelljen minden egyes gyógyszernéven végigballagni, hogy egyezik-e vagy sem.
Addig eljutottam, hogy az összehasonlítást meg lehet saját módszerrel oldani, de a rendezettségről nem találtam infot. (File-lal megoldottam, de sqlite-ban szeretném ugyanezt.)
Lehet, h. nagyon triviális a kérdés, akkor bocsánat. Egy linkkel is megelégszem, ami a megf. dokumentációra mutat.

(#564) Mbazsika válasza thon73 (#563) üzenetére


Mbazsika
tag

(#565) thon73 válasza Mbazsika (#564) üzenetére


thon73
tag

Húú. Köszi. Tényleg pofonegyszerű.

((Egy délutánon át keresgéltem, de mindenáron a rendezett adatbázisból akartam kiindulni (rövidzárlat v. mi). Pedig, csak az indexet kellett volna beírnom! Hát, viszek egy csokor szénát a lámáknak...))

Ha jól értem, elég csak megcsináltatni az indexet, a "gyors" kereséssel nem is kell foglalkozni, kiválasztja maga?

(#566) Sianis válasza thon73 (#565) üzenetére


Sianis
addikt

Ezt olasd át. Az explain elmagyarázza neked, hogy a lekérdezés eredménye milyen lépésekből áll. A gyors keresés érdekében kerülni kell a full table scaneket, azok helyére érdemes indexet tenni. Ilyenkor az történik, hogy nem kikeresi az értéknek megfelelő rekordokat, hanem "tudni" fogja, hogy melyik rekordok azok amik megfelelnek a feltételnek.

Sianis

(#567) thon73 válasza Sianis (#566) üzenetére


thon73
tag

Köszönöm! Mindkét link nagyon hasznos!

Egy újabb apró kérdés, amin nem jutok át (google segítséggel sem). Ki tudja, hogy az adapterben átadott nyitott adatbázist és cursor-t hol kell bezárni? A doksi az onDestroy-t javasolja (és az logikus is, mint az onCreate párja), de a program az onPause után is meg tud lógni...
Vagy hogyan tudom az onStart-ba tenni az adapter elkészítését? Az nem kell az onCreate után kész legyen? (ListActivity-ben) Előre is köszönöm!

(#568) thon73 válasza thon73 (#567) üzenetére


thon73
tag

Érdekes. Az egész adapter-kérdést az onResume-ba helyezve is működik. (bocsánat, az előbb elírtam onStart-ra, de az onPause párja az onResume)
Tehát: adatbázis megnyitás, query, majd a simplecursoradapter az onResume-ban van,
cursor zárás, adatbázis zárás az onPause-ban.
((Az más kérdés, hogy a gyakoribb lekérdezés lehet hosszú, de most csak néhány elemről van szó - inkább az elmélet megértésére.))
A kérdés most fordítva merül fel bennem: van valami oka, amiért annyi más (hibaüzenetet adó) megoldás mellett ezt nem találtam a neten? Nekem elméletileg és gyakorlatilag is korrektnek tűnik (időtényezőt nem nézve); szól ez ellen a megoldás ellen valami, amit nem vettem észre?

(#569) Sianis válasza thon73 (#568) üzenetére


Sianis
addikt

Maximum annyi, hogy túl gyakori lehet a meghívása. Jön egy telefonhívás, átnavigálsz egy másik appra, alvó üzemmódba kerül a telefon, átváltasz egy másik Activityre. Van létjogosultsága, de pl engem nagyon zavarna, ha lemegyek egy lista aljára, elrakom a telefont alvóba, majd mikor előveszem akkor megint a lista tetején vagyok, mivel az adapter újra lett építve teljesen.

Sianis

(#570) fatal` válasza thon73 (#567) üzenetére


fatal`
titán

Mi a probléma az onDestroy-jal?

(#571) SektorFlop válasza thon73 (#568) üzenetére


SektorFlop
aktív tag

számomra még nem teljesen világosak ezek az activity életciklusok. Jelenleg onStart-ba raktam az adaptert, Home gombal "kilépek" az alaklmazásból, aztán újra elindítom, és ilyenkor újraépíti az egész activityt, nekem is totál et kell terveznem az egészet.

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#572) thon73 válasza SektorFlop (#571) üzenetére


thon73
tag

Sianis-nak: Igen, ez fontos észrevétel, nem gondoltam rá. Így már akkor is visszaáll az elejére, ha csak pl. megnézek külön egy rekordot, hiszen más Activity kerül előtérbe. Hm.

Ez a téma szerintem sokaknak okoz fejtörést. Honeycomb felett változott egyébként a megközelítés (és én még nem tartok ott), de sajnos, a konkrét probléma ettől még megmarad.
A probléma veleje: az Activity az onCreate-onStart-onResume metódusokon kersztül indul, és rendre az onPause-onStop-onDestroy metódusokon áll le. Ezek persze párban állnak, tehát ha csak az onPause-ig jut a leállás (más kerül az előtérbe), akkor az onResume ponton éled fel a program.
Ez azt jelenti, hogy az onCreate-ben megnyitott adatbázist az onDestroyban kellene bezárni. Ha előbb zárjuk be (pl. onPause), akkor visszatéréskor (onResume-tól kezdődik), nem lesz nyitott adatbázisunk (mivel a megnyitást végző onCreate nem kerül meghívásra!)
DE! ÉS ITT JÖN A BAJ! Az Android rendszer - ha fogy a memória - CSAK AZ ONPAUSE VÉGREHAJTÁSÁT GARANTÁLJA! Simán kihagyja az onDestroy-ban lévő zárást.
Az adapternek viszont végig szüksége van a nyitott adatbázisra, ill. a hozzá tartozó cursorra. Ezért jutottam oda, hogy a listát az onResume-ban kell lekérdezni és megalkotni, aztán az onPause-ban bezárni. Sianis-nak azonban igaza van, ezzel minden apró-cseprő dolog miatt újraépül a lista.

Kérdések:
- lehet, hogy nem kell törődni az onPause utáni kényszerleállással? A vélemények szerint kell, saját tapasztalatom nincs (túl nagy a memóriám :) )
- javítja-e a helyzetet, ha onPause-ban pl. a lista helyzetét is tároljuk?
- van-e valakinek precízebb ötlete?
- javasolják a singleton-t (Application-ból származtatva), ami járható út; így ugyanis a teljes Application (és nem Activity!) futás alatt nyitva marad az adatbázis (és a cursor). De honnét tudom, hogy véget ért a történet, és be kell zárni az adatbázist?

Néha nem látom át, hogy milyen logika alapján képzelték el ezt az egészet. Igaz, én csak amatőrben játszom...

(#573) SektorFlop válasza thon73 (#572) üzenetére


SektorFlop
aktív tag

Nem tudom mennyire jó megoldás, de én már a cursort rögtön a lekérdezés után zárom, és egy listát ad vissza a metódusom, amit az adapter az onStart-ban feldolgoz. Adatbázist nem zárok sehol, pedig lehet kellene.

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#574) thon73 válasza SektorFlop (#573) üzenetére


thon73
tag

Kellene. Elvileg. A LogCat tele lesz hibával, ha nem zárod, de a program működik. Alattomos.
A lista jó, ilyen szempontból, csak zabálja a memóriát. Mindent kétszer tárolsz, másolsz, stb. Én csak próbálgatom az SQLITE-t, de a végleges megoldásban több, mint kétszázezer rekordot kellene kezelnem. igaz rövidek, az egész nincs 10 mega.

(#575) fatal` válasza thon73 (#572) üzenetére


fatal`
titán

"Ez azt jelenti, hogy az onCreate-ben megnyitott adatbázist az onDestroyban kellene bezárni. Ha előbb zárjuk be (pl. onPause), akkor visszatéréskor (onResume-tól kezdődik), nem lesz nyitott adatbázisunk (mivel a megnyitást végző onCreate nem kerül meghívásra!)"

Miért ne lenne? Csak akkor nem lesz, ha az onPauseban lezárod a kapcsolatot.

Legalábbis ez lenne a logikus. Persze nem tudom mennyire jó ötlet nyitvatartani a háttérben, nem csináltam még ilyet csak PC-n, ott meg ugye egész más a helyzet. :)

[ Szerkesztve ]

(#576) Sianis válasza fatal` (#575) üzenetére


Sianis
addikt

CursorLoader? Benne van a support-v4 libben és azt állítja magáról, hogy kezeli a cursor teljes életciklusát, nem kell foglalkoznod a bezárással.

Sianis

(#577) thon73 válasza fatal` (#575) üzenetére


thon73
tag

Pontosan. Ha onPause-ban bezárom, akkor nem lesz.
DE:
onPause után a rendszer bármikor bezárhatja a programot, és akkor az onStop ill. onDestroy nem kerül meghívásra. Ha a zárás az onDestroy-ban van, akkor soha nem kerül meghívásra és bezárásra.

Ez a helyzet sokkal gyakoribb, mint gondolnánk. Most próbáltam tesztelni: ha home-mal lépek ki a programból, és utána egy csomó minden mást elindítok (ez azért gyakori), akkor az eredeti program figyelmeztetés nélkül bezár ((egyébként a gyakorlatban ez az onStop után következik be, elméletileg már az onPause után is bekövetkezhetne))

Azt nem tudom, zavarja-e az adatbázist és a cursor-t, ha nyitva marad. Szerintem nem, mert adapterről van szó, tehát csak olvasásról.
Zavarja-e a rendszert, ha nyitva marad az adatbázis? Mem-leak?
Vagy ne foglalkozzak az egésszel, mint ahogy a legtöbb példaprogram teszi.

Egy ideje olvasgatok erről, de sehol nem találtam korrekt módszert a zárásra. Kivéve az onPause-onResume párosát, de annak meg más baja van. (vagyis túl gyakran kerül meghívásra.) Szerintem az egyik legnagyobb hiba az Android tervezésében, hogy az onPause után megengedett a rendszernek az erőltetett kilépés. Mi a nyavajáért nem fejezheti be ilyenkor a dolgát a program!?
((A listView esetén sajnos teljes activity-ben kell gondolkodni: amíg a listview látszik, addig az adapter aktív, tehát kell a nyitott cursor és adatbázis is.))

(#578) thon73 válasza thon73 (#577) üzenetére


thon73
tag

Még egy apróság: a problémám abból fakad, hogy a dokumentáció kihangsúlyozza, az onPause után az Activity-t a rendszer kilőheti.
Ezzel szemben többen állítják (és elvileg ez így kell legyen, hiszen az activity csak egy objektum, hogy lehet eltüntetni egy objektumot?), hogy a rendszer Activity-t nem, csak process-t tud kilőni. Márpedig a teljes application egy processben van benne.
De akkor hogyan lehetséges, hogy az egyszerű példaprogramom újra el tud jutni az onCreate-be, onDestroy nélkül. Kilőtte a rendszer a process-t az egész alkalmazás alól?
Kételyek között vagyok - nem értem az egészet.És a source-ban is elég nehéz egy ilyen komplex eseményt lenyomozni...

(#579) Sianis válasza thon73 (#578) üzenetére


Sianis
addikt

[link] : "There are situations where the system will simply kill the activity's hosting process without calling this method (or any others) in it, so it should not be used to do things that are intended to remain around after the process goes away."

Sianis

(#580) thon73 válasza thon73 (#578) üzenetére


thon73
tag

...feladtam a harcot az Android életciklusainak megértésére. Sztem. a fejlesztők is, API11 felett teljesen más módszereket alkalmaznak.

Segítséget szeretnék kérni: egy príma Wayteq xtab700dc-t szeretnék rábírni az Eclipse-szel való együttműködésre most WinXP, (egyébként linux alatt, ami esetünkben könnyebbnek tűnik).
Android 4.1.1 alatt kell windows driver? Ha igen, tudja-e valaki, hogy ezekhez a remek kínai termékekhez hol lehet szerezni/mit lehet használni?
Van egy "Internal Memory" (pontosabban csak az van...) feliratú fa-struktúrám. (nem rootolt gép). Ez vajon hova lehet be-mountolva? Vagyis hogyan érhetem el programból? (Rögtön a '\' alatt lehet?) Ha esetleg valaki rootolt gépet használ, megnézné?
Előre is hálásan köszönöm!
((Bocsánat, hogy nem tényleges programozást kérdezek, de oda szeretnék eljutni ezzel a géppel is. Másutt nem hiszem, hogy segítséget találok erre a problémára...))

(#581) SektorFlop


SektorFlop
aktív tag

Nagyon buta kérdés lesz, de valahogy sikerült átállítani angol billentyűzetre az eclipsben a bevitelt :DDD De csak Eclipsben :) és a google se segít abban hogy állítsam vissza.

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#582) Karma válasza SektorFlop (#581) üzenetére


Karma
félisten

Alt + balshift? :)

“All nothings are not equal.”

(#583) SektorFlop válasza Karma (#582) üzenetére


SektorFlop
aktív tag

Basszus az eszembe se jutott, mert hogy nem állította át az egész win alatt.

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#584) pigster


pigster
senior tag

Google Playjel kapcsolatban kérdezném, hogy lehetséges-e olyan módon feltölteni alkalmazást, hogy csak bizonyos felhasználók tudják letölteni mondjuk tesztelés miatt.
VAGY az van, hogy amit felrakok, az már élesben megy, és bárki letöltheti, aki rátalál?

FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.

(#585) Karma válasza pigster (#584) üzenetére


Karma
félisten

Ezt nem tudom, de a Play helyett használhatnád a TestFlightot a tesztelés alatt.

“All nothings are not equal.”

(#586) pigster válasza Karma (#585) üzenetére


pigster
senior tag

Kösz, kipróbálom.
Ettől függetlenül érdekelne az eredeti kérdés (illetve a válasz) is.

FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.

(#587) fatal` válasza pigster (#584) üzenetére


fatal`
titán

Sajnos nem. Országra, meg szolgáltatóra lehet azt hiszem szűrni, talán nyelvre is, másra nem. Olyat tudsz csinálni maximum.

(#588) SektorFlop válasza pigster (#586) üzenetére


SektorFlop
aktív tag

Mielőtt raknál ki élesbe app-ot, érdemes minden sort figyelmesen átolvasni privacy policy szinten, csak hogy lásd miként van googlééknál a dolog.

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#589) SektorFlop válasza Karma (#585) üzenetére


SektorFlop
aktív tag

Egyébként az én cégemnél is aktuális lenne egy ilyen tesztelésre, de ahogy látom androidra még várni kell egy kicsit.

"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."

(#590) moli.hu


moli.hu
őstag

tudja valaki, hogy a dual-simet hogy lehet kezelni? Mintha a .telephony csak 1 simet tamogatna. Valtani kell koztuk? Hogy?

(#591) Konair


Konair
csendes tag

Sziasztok!

GCM-et használok, és kapott üzenetet nem tudom beletenni if-be.

így néz ki:

// GCM által kapott üzenet: akarmi
String message = intent.getExtras().getString("price");

String tesztstring= "tesztstring";

if ( message == "akarmi" ) {
...nem fut le...
}
if ( tesztstring == "tesztstring" ) {
...lefut...
}

[ Szerkesztve ]

Weboldal készítés felsőfokon...

(#592) Karma válasza Konair (#591) üzenetére


Karma
félisten

Stringet .equals()-szal kellene összehasonlítani :U

A teszted azért fut le, mert a virtuális gép csak egyszer hozta létre a konstans stringet, így a referenciájuk azonos. A GCM által létrehozottra ez nyilván nem lesz igaz.

[ Szerkesztve ]

“All nothings are not equal.”

(#593) Karma válasza Karma (#592) üzenetére


Karma
félisten

Megjegyzés: a Sun JVM a nagyon rövid stringeket cacheli, tehát pl. egy három hosszúságú stringnél előfordulhat, hogy a == igaz lesz. A Dalvik nem tudom csinál-e ilyet, de még ha csinál is, erre nem szabad alapozni. Egyenlőség tesztelésre csak az equals való.

“All nothings are not equal.”

(#594) Konair válasza Karma (#592) üzenetére


Konair
csendes tag

Tökéletes, nagyon szépen köszönöm! :R

Weboldal készítés felsőfokon...

(#595) Sianis


Sianis
addikt

Kis reklám:

Készülget egy app az xkcd-hez. 4.0 feletti eszközökkel lehet egyelőre használni, hogy a mérete kellően kicsi lehessen. A linken lehet jelentkezni, TestFlight-on keresztül megy terjesztés (legalább lesz tapasztalat az androidos implementációról is). Jöhetnek a visszajelzések bátran ide is. Csak tessék, csak tessék! És köszönöm előre is!

[link]

Sianis

(#596) sztanozs válasza Sianis (#595) üzenetére


sztanozs
veterán

Regisztráltam, és ezt kaptam:
Open the email on any iOS device and touch register - TestFlight takes care of the rest!

WTF - nem Androidra lesz?

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#597) Karma válasza sztanozs (#596) üzenetére


Karma
félisten

A TestFlight még béta Androidon, szerintem ezért lehet hogy rossz a levél megfogalmazása :)

“All nothings are not equal.”

(#598) pigster válasza Sianis (#595) üzenetére


pigster
senior tag

... és hogyan tötltötted fel? Mert én is próbáltam volna egy appot feltenni, letöltöttem a desktop appot a feltöltéshez, de a zip fájlban valami macOS dolgok vannak, úgyhogy hagytam a francba, nem szórakoztam vele
Szóval te hogyan csináltad?

FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.

(#599) Sianis


Sianis
addikt

Kaptam Beta tesztelői lehetőséget.

Linkelem az Android appot, úgy egyszerűbb. [link]. Telepítitek, beléptek, utána már látszani fog az Apps részen. Aki bejelentkezett, azt már hozzá is adtam.

Sianis

[ Szerkesztve ]

(#600) sztanozs válasza Sianis (#599) üzenetére


sztanozs
veterán

Megkaptam köszi - néhány megjegyzésem máris lenne - ha lehet itt :)

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

Copyright © 2000-2024 PROHARDVER Informatikai Kft.