Hirdetés
- Külföldi prepaid SIM-ek itthon
- Huawei P20 - ez is kétkezes lett
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Bemutatkozott a Poco X7 és X7 Pro
- One mobilszolgáltatások
- iPhone topik
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Milyen okostelefont vegyek?
- Honor Magic6 Pro - kör közepén számok
- Motorola Edge 70 - többért kevesebbet
Új hozzászólás Aktív témák
-
speedbump
tag
Sziasztok,
Írtam egy alkalmazást ami egy web oldalról gyűjt be információt és jelentíti meg a felhasználónak ListView-kban illetve még több részletet egy felugró fragment-ben.
Teljesen kezdő vagyok Java-ban is és Android-on is úgyhogy a kód minősége valószínűleg valahol a katasztrofális és az elég béna között helyezkedik el, főleg mivel nem látom, hogy hogyan tudnám hatékonyan osztályokba szervezni a metódusaimat.
Az lenne a kérdésem, hogy lenne-e valaki aki szivességből ránézne és adna tanácsokat, hogy mit kellene másképpen csinálnom? (pl Viber-en gondoltam.) Ha szivesen vállalkozna rá, akkor dobjon már egy privit.
Köszi.A project >>>INNEN<<< letölthető
-
Cunaja
addikt
AndroidManifest.xml-be hozzáadtam az alábbi sort és tökéletes.

Nem bírtam aludni.
android:configChanges="orientation">
[Itt a leírás róla] -
vlevi
nagyúr
Az elforgatas újra indítja az egész activity-t. A megoldás a savedinstancestate lehet. Az activity a bezárás előtt elemnti az állapotát, és ezt a következő oncreate-ben megkapod. Természetesen saját dolgokat is elmenthetjük, és akkor azt vissza tolteskor fel tudod használni.
-
Cunaja
addikt
Sziasztok!
Csináltam egy Local Html WebViewer alkalmazást JavaScript támogatással vizsgához.
Tökéletes lenne, csak az a gondom, hogy ha elfordítom a kijelzőt, újból betölti az egész tesztet és így elölről kezdi.
Kezdő vagyok, és még nem teljesen világos minden.
Ez a megoldás s.o.s lenne jó, mert tesztelni kellene a vizsgára.
Mit kellene csinálnom, hogy ne kezdje elölről? Kicsit megbillen a kijelző és fordítást érzékel, már elölről is kezdi a tesztet.
Az index.html-t tölti be és az meghív egy player.js scriptet.
Itt a MainActivity.javapackage hu.kzoli.kocsi.teszt;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class MainActivity extends Activity {
WebView WebViewWithJavaScript;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebViewWithJavaScript = (WebView)findViewById(R.id.webView1);
WebSettings webSetting = WebViewWithJavaScript.getSettings();
webSetting.setJavaScriptEnabled(true);
WebViewWithJavaScript.setWebViewClient(new WebViewClient());
WebViewWithJavaScript.loadUrl("file:///android_asset/index.html");
}
private class WebViewClient extends android.webkit.WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
return super.shouldOverrideUrlLoading(view, url);
}
}
}activity_man
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="hu.kzoli.kocsi.teszt.MainActivity" >
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
Bocsi ha hosszú volt. -
mexel
veterán
Sziasztok, nem tudom jó helyen teszem-e fel a kérdést de itt talán lesz válasz.
Adottegy androidos ( droid 7) eszköz. Amint egy pendrive-ot csatlakoztatok hozzá felugrik eg képernyő hogy mit szeretnék csinálni vele stb. Ezt hol lehet kikapcsolni a rendszerben, hol található ennek a beállítása.
( nem azt akarom kikapcsolni hog az adott pent többször ne kérdezze hanem globálisan magában a rendszerben hol van ennek a beállítása hogy kérdezzen vagy ne)
Előre is köszönöm a segítséget. -
domel
tag
Helló!
Van valakinek új Nokia (androidos) telefonja? Igaz, hogy egy idő után kilövöldözi a Service alkalmazásokat, függetlenül attól, hogy valami "white-list" akármiben be van jelölve az applikáció, hogy a háttérben is futhat? Nokiát szeretnék venni, de nem szeretném ha megszívnám vele, mert én pont ilyen alkalmazásokat fejlesztek és használok (ébresztőóra, sport-tracker, stb)Üdv: Domel
-
speedbump
tag
Na közben megoldódott a telepítési probléma. Valószínűleg a nagybetű package név volt a ludas ugyanis most már mindenki tudja telepíteni. Igaz, hogy a Play store-ban való frissítés után még két felhasználó hibaüzenetet kapott, de utána pár órával már gond nélkül tudták telepíteni
Boldog Karácsonyt, ha már nem találkoznánk ma

-
vlevi
nagyúr
Na, ma viszont szívtam mással.
Rávettem magam, hogy az Alcatel által 2 éve nem frissített telefonomra LineageOS-t (lánykori nevén cyanogen) rakjak, mert az valami miatt még frissül, decemberben került fel az xda-developers-ra. Ez természetesen teljes törlést, format system-et jelent, ahogy kell.
Namármost, ettől az alkalmazásom megőrült (meg én is). Nem hajlandó működni, eltelt egy kis idő, mire rájöttem, hogy azért, mert a telefon régi ROM-ja 5-ös volt, az újabb pedig 7.1-es, és itt már nem elég a manifestben beálltani a jogokat, az app-nak használat előtt ezeket meg is kell kérnie. Úgyhogy vehettem elő az android studiot, amivel már jó ideje nem foglalkoztam, hát persze, hogy előtte egy jó ideig frissítgetett, meg gradle-re panaszkodott, hogy elavult, meg tököm, meg miafene, mire bele tudtam írni azt a két sornyi kódot a jogosultságok megkérésére... -
speedbump
tag
Megnézné valaki a kódom? Eleve kiváncsi vagyok arra, hogy mi mindenen kellene változtassak ahhoz, hogy ez tisztességes java kód legyen, másrész hátha valaki kiszúrja, hogy miért lehet telepíteni az alkalmazást bizonyos telefonokra.
Persze így távolról kicsit nehéz code-review-t tartani, de azért próba szerencse...
-
Zalanius
tag
válasz
speedbump
#4789
üzenetére
Már nem szükséges, de 25-ös SDK-ig kellett, mert a return type adott esetben View volt. 26+ compile esetén viszont a metódus:
public <T extends View> T findViewById (int id)Itt egy forrás hozzá, ahol külön is említik, hogy így a legtöbb esetben nem kell már kasztolgatni.
szerk. a compile sdk beállítás a fontos itt, nem a min.
-
speedbump
tag
Alap kérdés:
Button myButton = (Button) findViewById(R.id.testButton);Ebbe a sorban miért írják bele a (Button) részt? Gondolom ez afféle typecast de feleslegesnek tűnik hiszen tudom, hogy a változóm Button tipusú és azt is tudom, hogy testButton szintén az. A (Button) nélkül is simán fut a programom viszont azt észtrevettem szinte minden tutorial-ban szerepel ez a rész, úgyhogy biztos van valami haszna. Node mi?
UPDATE: https://goo.gl/6n6jms
Ha nem használom akkor az lehet probléma ha az alkalmazásom korábbi Android verziókon akarom futtatni?
-
vlevi
nagyúr
"a a targetSdk-t leveszed alacsonyra"
Nekem le volt véve, mert az akkori telefonomon 4.2.1 volt, a tabletemen 5, az Androidos TV boxon pedig 4.4
Lefordult 4.2-es target sdk-val is, csak a telefon, amikor ehhez a kódrészhez ért, és nem volt benne azif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT), akkor lehalt. -
speedbump
tag
Nahát valami előrelépés azért van. Megnéztem 4.1-es emulátorral és valami ~ "Parse manifest" hibát kaptam a telepítés során (már éjfél körül volt és elfelejtettem). Utánanéztem, azt írták, hogy az a package name-ben ne legyen nagybetű. Nekem volt. Megváltoztattam és ezután már fel tudtam telepíteni, igaz, hogy nem működött rendesen az alkalmazás (pl a floatingactionbutton nem reagált) de már ennek is örültem.
Ma reggel megkértem az ismerősöm, hogy próbálja telepíteni, most 108-as hibát kapott
Ennek is utánajárok, ha esetleg van tippetek azt szivesen venném. -
vlevi
nagyúr
válasz
speedbump
#4784
üzenetére
Viszont vannak olyan dolgok, amik egy android verzióban máshogy vannak, mint a másikban.
Én pl. azzal szívtam, hogy android 4.4-től van getExternalStoragePublicDirectory de 4.2 vagy alacsonyabb verzióban nincsen. És lefordul a kód, és fut 4.1-n is, egészen addig a pontig, amíg a meg nem hívod a getExternalStoragePublicDirectory-t, mert akkor behal.Erről van szó :
File pat;
String mc_all;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // public dir csak kitkattól felfelé van.
pat = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS+"/limlom");
} else { //
pat = new File(Environment.getExternalStorageDirectory() + "/Documents/limlom");
} -
speedbump
tag
Nem próbáltam. A
minSdkVersion 16vagyis android 4.1.
Az egyik telefonon 4.4.4 van a másikon 5.akármennyi. A play store mindkét telefonra engedi a telepítést (egyébként kiírná, hogy "not compatible with your device"), viszont miután letöltötte az alkalmazást utána dobja a 910-es hibát.
-
speedbump
tag
Kipróbáltam az
android:installLocation="preferExternal"és azandroid:installLocation="auto"opciót is. Sajnos semmi változás, ugyanúgy 910-es hiba. Nem tudom ezekre gondoltál-e? (az előző változatban ez nem volt meghatározva, ezért akkor azinternalOnlyopció élt)Viszont most kaptam az infót, hogy azokban a telókban amire felment nincs sd kártya, amelyiken 910-es hibát dobott azokban van. Nem tudom mi az összefüggés, ha van egyáltalán, de legalábbis gyanús.
-
speedbump
tag
Hello.
Az alkalmazásomat 5 telefonra próbáltam telepíteni: Ebből háromra felment, kettő pedig az alkalmazás letöltése után, a telepítés közben 910-es hibát dobott. Az egyik 4.4.4-es a másik 5.valahanyas android-ot futtat, az alkalmazásomnak Android 4-en is futnia kellene.
A neten nem találtam semmi hasznos infót erről a hibáról, mintha az embereknek ötlete sem lenne arra, hogy mi az oka. Ilyen babonás dolgokot találtam, hogy indítsd újra, töröld a cache-t, lépj ki, lépj be, ráadásul ezek sem nagyon működnek a válaszok alapján.
Találkozott már valamelyikőtök ezzel és ha igen, akkor hogy sikerült megoldani a problémát?
Köszönöm.
-
speedbump
tag
<receiver android:process=":remote" android:name=".BackgroundAlarmService"></receiver>
Ezzel egy háttérben futó process-ként definiálom a ".BackgroundAlarmService"-t.
http://sriram-iyengar.blogspot.com/2011/07/android-service-creation-remote.html
-
speedbump
tag
Hmm.... Arra gondolok, hogy talán nem voltam világos azzal, hogy mit akarok elérni. Nem is akarom, hogy magától újrainduljon az alkalmazásom (a main activity-re célzok), nekem annyi kell, hogy legyen egy háttérben futó process ami periodikusan csinál valamit. Függetlenül attól, hogy az user bezárta-e a main activity-t
Ez nálam tökéletesen működik, kb 1 percenként megjelenik egy toast (ennyit csinál most a háttéralkalmazás). Ez akkor is megjelenik ha kilövöm a programot az alkalmazáskezelőből és akkor is ha újraindítom a telefont.
Ez nem csak a telefonomon működik hanem az android studio-n belül létrehozott virtuális eszközön is.
Nálad nem?
-
domel
tag
válasz
speedbump
#4775
üzenetére
Néztem a programodat, ha kilövöm a task menüből, akkor nem működik tovább. Ha újra indítom a telefont, akkor nem indul újra sem. Szerintem rossz irányba mész el ezzel a BroadcastReceiver Manifest-be regisztrált különosztállyal, inkább azt keresd meg, hogy amit én küldtem kódot, az miért áll le a program kilövésekor
Nézd meg ezt:
[xiaomi beállítások]Én még olyan programot nem láttam a háttérben működni ami nem Service, és a task menüben sem látszik. Ha a Facebook Messenger-t kilövöd, az sem működik tovább?
-
speedbump
tag
Innen tudod letölteni:
https://drive.google.com/open?id=1zhW7Yx4TNw7wE_BFZIQGnppFRmQVxAr9Az alarmmanager időzítése még korántsem megy, kb 1 percenként aktiválódik, viszont mindenképp megtörténik. Akkor is ha lelövöm az alkalmazást és akkor is amikor újraindítom a telefonom.
(egy rebuild project erre is ráfér. Ha a logcat-ben "myDebug"-ra szűrsz akkor látod mikor jön fel a toast és nem kell a képernyőt bámulni)
-
domel
tag
válasz
speedbump
#4772
üzenetére
Ok, tedd fel zip-ben valahova, kiváncsi vagyok én is rá. A xiaomi-nál nincs valami védett alkalmazások mappa a beállítások menüben? Androidban az a rossz, hogy egy verzióváltás után hetekig hibákat keresek. Eddig a legdurvább a Lollipop-Marshmallow átállás volt...
-domel
-
speedbump
tag
Köszi szépen!!!! Letöltöttem, elindul, csipog, növeli a számlálót. Állat...
Hogy pontosan mi történik benne azt emésztenem kell, mert új vagyok ebben az egész Java/Android környezetben. Amit viszont észrevettem az az, hogy a Xiaomi redmi4-esen az alkamazás kilövése után meghal a service is, vagyis ezen a készüléken nem működik a dolog

Az alkalmazásod egy ugyanolyan 7.1-es android-ot futtató virtuális telefonon azt csinálja, amit kell neki, szóval az a tippem (de ez tényleg csak tipp), hogy a telefonomon futó miui10-es rendszer csinál valami érdekességet.
Közben, amúgy én is nekimentem ennek az Alarmmanager-nek, mindenféle megértés nélkül, csak tutorial alapján. Ez viszont működik, vagyis a kilövés után is fut a service (Toast üzeneteket dob fel). Nem tudom mi lehet az oka a különbségnek, ha gondolod átküldöm a kódot, hátha te látsz benne valamit. (Nem gond ha nem, végülis van ami működik, csak mégis kiváncsi vagyok, hogy az egyik miért hal meg a kilövés után a másik miért nem.)
Akárhogy is, nagyon szépen köszi a segítséget!
-
domel
tag
válasz
speedbump
#4770
üzenetére
Innen letöltheted [link]
Kicsomagolod a zip-et, majd betöltöd. Valószínűleg kell az android stúdióban a
Build->Clean Project
vagy
Build->Rebuild Project
hogy beforduljon, mert az nélkül olyan mappákban fog keresgélni, ami csak az én gépemen létezik. A program másodpercenként növel egy számot, de az a valóságban 5 másodperc lesz, mert a Marshmalow óta korlátozták az AlarmManager túl sűrű használatát. Ez a program akkor is működni fog, ha kilövöd a programot, kivéve ha Huawei a telefonod, mert annak van egy "Védett alkalmazások" menüje, ott kell bejelölni az app-ot, ha azt szeretnénk hogy a task menüből is kilőve tovább működjön a Service -
speedbump
tag
Szia,
Hát azt nagyon megköszönném.
A jobscheduler úgy jött, hogy meg akartam csinálni az alkalmazásom háttérben futó részét és ez volt az első amiről részletes tutorialt találtam. Szóval nem annyira tudatos választás volt, az alarmmanager-t egyáltalán nem ismerem.
Az elmúlt napok alapján a workmanager-t is kipróbáltam, de az is kipusztul ha kisöpröm az alkalmazásom a memóriából tényleg valami másra van szükségem.
előre is köszi!
-
Gerzsi
tag
ismertek más fejlesztői fórumokat? vagy slack csatornákat?
-
Benex
senior tag
Sziasztok!
Van köztünk olyan, aki külföldön dolgozik android fejlesztőként? Szerintem ne spameljük a topikot vele , így ha van , megkérném, PM-be irjon már nekem.
Köszönöm előre is

-
domel
tag
válasz
speedbump
#4765
üzenetére
A Service túl tudja túlélni egy program kilövését (még akkor is, ha a taskmenüből lövöd ki), ehhez előtérbe kell helyezni a Service-t illetve az időzítésnek is egy előtér-flag-et kell adni, hogy leválaszd az őt létrehozó osztályt. A fenti módszerhez én AlarmManager-t használok időzítésnek, és nagy kérdés hogy működik-e a dolog JobSchedule-al. Szerintem rajtad kívül itt senki nem foglalkozik JobSchedule-al, mert bár biztos az a jövő, amíg bele nem kényszerítenek addig jó nekünk az AlarmManager is.
Ha gondolod, összedobok valami gagyi activity-service demonstráló kódot ami túléli a kilövést is, de abból lehet hogy csak holnap lesz valami
-domel
-
speedbump
tag
válasz
speedbump
#4765
üzenetére
Illetve hát nyilván nem is az a lényeg, hogy hogy lehet újra elindíani a job-ot hanem, hogy hogyan tudnám megoldani az alapproblémát vagyis azt, hogy akkor is megkapja az értesítést a felhasználó ha kisöpörte az alkalmazást a memóriából. Ha ahhoz újra kell indíani a job-ot akkor az érdekel, ha van más - jobb - megoldás akkor az

-
speedbump
tag
Sziasztok.
Ahogy a korábbi hozzászólásomban írtam egy egyszerű emlékeztető alkalmazást szeretnék írni.
Már szinte teljesen készen van: működik a felhasználói felület, adatbázisba menti az emlékeztetőket stb.
A telefon indításakor egy (android.permission.RECEIVE_BOOT_COMPLETED) egy broadcast receiver elindítja a jobscheduler-t, ami periodikusan meghívja azt a rutint ami ellenőrzi, hogy kell-e emlékeztetőt megjeleníteni a felhasználónak és egyben azonnal újraidőzíti a jobscheduler-t.
Minden szuper, működik, emlékeztet stb..
Van viszont egy komoly probléma: ha a felhasználó az alkalmazást nem egyszerűen bezárja a vissza vagy a home gombbal, hanem ki is söpri a futó alkalmazások közül (force close) akkor onnantól kezdve minden leáll és nem kap értesítéseket.
Nem tudom, hogy ez csak bizonyos telefonokra igaz (nekem xiaomi redmi4-esem van), vagy az összesre, de a lényeg a lényeg az lenne a kérdésem, hogy hogyan tudnám automatikusan újraindítani a szolgáltatásnak a jobscheduler részét? Tudom, hogy ez általában nemkivánatos, de azt is tudom, hogy egy csomó alkalmazás megteszi valahogy. Hiszen ha pl kisöpröm a vibert, attól a következő üzeneteket ugyanúgy megkapom.
Előre is köszönöm a segítséget.
-
thon73
tag
Bocsánat, ha nagyon alap kérdést teszek fel. Egy
Viewszámára készítek időzítést. Egy összefoglaló képen az ikonok másodpercenként váltják egymást.A
new Handler()ugye az UI Thread-en indul, ugye? (ha a View-ból indítom) Gondolom, ezt nincs is értelme háttérszálra tenni.
Indításra és leállításra használhatom-e azonAttachedToWindow()ésonDetachedFromWindow()metódusokat?Itt a kód is:
public class DiaryLayout extends ViewGroup
{
private int columns = 7;
private int rows = 5;
private Handler repeatHandler = new Handler();
/*...*/
@Override
protected void onAttachedToWindow()
{
super.onAttachedToWindow();
repeatHandler.postDelayed( repeatRunnable, 1000 );
}
@Override
protected void onDetachedFromWindow()
{
super.onDetachedFromWindow();
repeatHandler.removeCallbacks( repeatRunnable );
}
private Runnable repeatRunnable = new Runnable()
{
@Override
public void run()
{
for ( int row = 0; row < rows; row++ )
{
for (int col = 0; col < columns; col++)
{
getChildAt(row * columns + col).invalidate();
}
}
repeatHandler.postDelayed( repeatRunnable, 1000);
}
};
} -
t181
senior tag
Ha fontos, hogy pontosan a megadott időpontban fusson le a feladat, a WorkManager szerintem nem lesz jó.
Próbáld ki az Evernote Android-Job-ját, ez elvileg tudja, amire neked szükséged van, bár már régen használtam.
Android-Job (össze is van hasonlítva egy táblázatban, hogy mik a különbségek a két könyvtár között)
Pár hónapja kellett egy alkalmazást írnom, ami 5 percenként szólt a felhasználónak és tökéletesen alkalmas volt rá az AlarmManager. Pontosnak is kellett lennie, mert egy Chronometer számolta az eltelt időt, így a felhasználó is látta, hogy "hazudik-e".
A következő kódrészlettel állítottam be, hátha segít:
alarmManager.setExact(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + ALARM_TIMER, pendingIntent) -
domel
tag
válasz
Arcanus
#4758
üzenetére
Kipróbáltam azt a WorkManagert (ha a Schedule-ra gondoltál) és nem értem mitől jobb mint az AlarmManager. Ugyanolyan pontatlan mint az AlarmManager, íme a Log (egy perces intervallumot állítottam be):
12-15 22:15:12.185 22365-22365/com.example.user.cince I/TTAG: onstartjob
12-15 22:17:34.091 22365-22365/com.example.user.cince I/TTAG: onstartjob
12-15 22:18:36.993 22365-22365/com.example.user.cince I/TTAG: onstartjob
12-15 22:18:42.146 22365-22365/com.example.user.cince I/TTAG: onstartjob
12-15 22:20:39.121 22365-22365/com.example.user.cince I/TTAG: onstartjob
12-15 22:21:40.175 22365-22365/com.example.user.cince I/TTAG: onstartjob
12-15 22:22:14.741 22365-22365/com.example.user.cince I/TTAG: onstartjobMint látjátok van ahol kimarad két perc, utána meg hat másodperc múlva újra meghívódik, aztán kimarad újabb 2 perc.
-
speedbump
tag
Sziasztok, újabb kérdés. Az app store-ba feltöltött alkalmazásomra azt írja, hogy egyik eszközömmel sem kompatibilis. A program írása közben több százszor töltöttem fel a telefonomra és természetesen semmilyen kompatiblitási problémával nem találkoztam. Most gondoltam feltöltöm az google-play-be, fent is van, de telepíteni meg nem tudom onnan. Találkoztatok már esetleg hasonló problémával?
UPDATE: tárgytalan... semmit nem csináltam (szerintem), de most már telepíthető az alkalmazás. Ki tudja mi okozta, mindenesetre most már jó.
-
speedbump
tag
Köszi szépen mindkettőtöknek. Időközben rátaláltam [erre] az oldalra, ami tök jól leírja a Jobscheduler használatát. Ezzel sikerült is megoldanom a fő problémát, most már csak annyi kell, hogy a periodikusan meghívott rutin leellenőrizze az adatbázist. Ez remélem már csak formalitás lesz

-
Arcanus
aktív tag
Érdemes meglesned, az idei IO-n bejelentett API-kat, melyek közül [WorkManager]-t emelném ki. Egy felsőbb réteget biztosít számodra, nem kell az I/O programozással foglalkozz.
Ugyanígy, az adatbázis kezelést is érdemesebb fentről kezelni, ehhez a [Room] API-t ajánlom. Egyszerűbb, könnyebb karbantartani és az Android Jetpack része, amelyről [itt] olvashatsz bővebben
-
speedbump
tag
Sziasztok.
Kicsit halottnak tűnik ez a fórum, de hátha lesz még válasz

15 év teljesen más jellegű programozás után elkezdtem ismerkedni az Android-dal. A nagy cél egy egyszerű emlékeztető alkalmazás írása. Az alkalmazásomnak két része van/lesz.
Az egyik maga a felhasználói felület, ahol a felhasználó felvihet új emlékeztetőket, szerkeszthet vagy törölhet már meglévőket. Az emlékeztetőket egy lokális sqlite adatbázisban tárolom. Ez a rész teljesen készen van, jól működik, egészen elégedett is vagyok vele mint első próbálkozás.
Igenám, de egy emlékeztető alkalmazásnak nem ártana emlékeztetnie is a felhasználót néhanapján, és ezzel a dologgal teljesen el vagyok veszve. Az programomnak kellene lennie egy olyan részének ami a háttérben fut és időnként (pl óránként) megnézi az adatbázis és üzenetet küld a felhaszálónak (pl notification-t) ha épp lejárt az egyik emlékeztetője.
Itt meg vagyok lőve, nincs ötletem. Ennek a service-nek (persze lehet, hogy nem Service) már a telefon indításakor működnie kellene és természetesen az felhasználói felülettel egyszerre kellene települnie. Ezt hogy lehet megcsinálni? Egyáltalán mit használjak ilyenkor? Service? Broadcastreceiver? Valami más?
Előre is köszönöm.
-
Arcanus
aktív tag
Köszönöm szépen a válaszokat!
Akkor elkezdek ismerkedni vele, Java megy és mivel a Kotlin erre épül ezért nem hiszem, hogy vészes lenne áttérni rá.
-
vlevi
nagyúr
válasz
Arcanus
#4750
üzenetére
Igen, szerintem is.
Nincsenek belsős infóim, csak összeesküvés elméleteket gyártok ezügyben, miszerint a Google és az Oracle nem egyszer összerúgta már a port a Java-val kapcsolatban, a Google-nak nagyon jól jött ez az új programnyelv, amire áttérhet, mint az Android hivatalos, és Oracle-től független programnyelve. Nem tudom, hogy március óta van-e újabb döntés ezzel kapcsolatban, de akkor az Oracle-nek adtak igazat. [link] -
Benex
senior tag
válasz
Arcanus
#4750
üzenetére
Én is csak azt tudom mondani, hogy megéri. Mióta supported lett a google is eléggé nyomja (android ktx), illetve a mostanio dev. keynote-ban is már ők maguk is minden fejlesztést kotlinba mutatnak be. Én is használom, java után nem lesz nehéz áttérni, viszont nagyon sok hasznos feature van benne ami után a javat használni lesz rosszabb

-
t181
senior tag
válasz
Arcanus
#4750
üzenetére
Szvsz simán megéri, én már csak akkor írok Java kódot, ha nagyon muszáj.
Már most is kap akkora figyelmet, hogy érdemes legyen foglalkozni vele, Android fejlesztőként pedig főleg. Pár napig nézegeted, tanulgatod, és meg fogod bánni, hogy nem kezdted el használni korábban.
-
Arcanus
aktív tag
Szerintetek mennyire éri meg Kotlin nyelvet tanulni? Idővel nagyobb figyelmet fog kapni mint a pure Java? (csak androidra fejlesztés szempontjából nézem a kérdést)
-
mexel
veterán
Sziasztok! talán itt kaphatok segítséget, ha nem jó helyen járok akkor bocs.
Androidos tv boxon szeretném az iimersive módot beállítani.
init.d-ből fut a script, több lehetőség van, ez van engedélyezve de mégsem működik úgyahogy kellene, alkalmazások alatt előjön az értesítési sáv:settings put global policy_control immersive.full=*Ilen lehetőségek vannak még, de bármit bárhová kapcsolok nem jó igazán.
# Remove Status bar
settings put global policy_control immersive.status=*# Remove Navigation bar
settings put global policy_control immersive.navigation=*# Disable
settings put global policy_control null*Ha viszont telepítem a SystemUitunert és azon bekapcsolom az immersive mode full-t akkor tökéletesen működik.
( az init.d script lefut azzal nincsen baj)
-
Madoc
veterán
Üdv mindenkinek! Fejlesztőt szeretnénk keresni egy nagyon hasznos appnak , aki eddig csinálta az időhiányban abbahagyja és nyilvánossá tette a forráskódot is. Erről lenne szó ,van saját topic-ja is [link]
Elnézést ha nem idevaló lenne a kérés de rengetegen használjuk évek óta az appot és nem akarunk belenyugodni hogy ennyi,vége.
-
domel
tag
Na végre összejött az ablak, ami bármilyen applikáció felett fut.
deklarációban:private WindowManager wm;onCreate:
wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
addImageView(8);és
private void addImageView(Integer i) {
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.START;
params.x=i;
params.y=i;
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = inflater.inflate(R.layout.rere, null); //RelativeLayout
wm.addView(popupView, params);
TextView titi= popupView.findViewById(R.id.zizi);
titi.setText("szöveg átír");
}rere.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="left"
android:id="@+id/o2element1"
android:padding="0dp"
android:background="#4F77A0"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="30dp"
android:text="próba 1"
android:id="@+id/zizi"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="30dp"
android:text="próba 2"
android:id="@+id/zizi2"
/>
</LinearLayout>Ahhoz hogy működjön, két dolog kell (másfél dolog)
1. engedélyezni kell az app-nak, hogy más appok felett lehessen: settings>alkalmazások>speciális>megjelenés más alkalmazások felett>programunk>kapcsoló bekapcsol
Akár programból is odarepíthetjük a felhasználót a beállítások menübe, mert az engedélyt neki kell megadni, de olvastam valamit, hogy a play-ről telepítve valamilyen feltételnek megfelelve ez akár ki is kerülhető
2. ha Oreo vagy magasabb az oprendszer, akkor külön engedély kell neki:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>Most hogy már ezt is tudom, fogalmam nincs mire fogom használni

-
domel
tag
Helló! Továbbra is próbálkozok ezzel a mindenek feletti ablakkal, de van egy olyan érzésem, hogy megint a huawei szivat. Valaki lécci próbálja ki a lenti kódot nekem, a program azt vizsgálja, hogy a SYSTEM_ALERT_WINDOW engedélyt megkapom-e
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.canDrawOverlays(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 5469);
}
}
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{
"android.permission.SYSTEM_ALERT_WINDOW"
},
1);
}
}
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case 1:
boolean engedelyek = true;
int rekLength = grantResults.length;
if (rekLength > 0) {
for (int rekI = 0; rekI < rekLength; rekI++)
if (grantResults[rekI] != PackageManager.PERMISSION_GRANTED) {
Log.i("TTAG", "permission:" + permissions[rekI] + " Elutasítva!");
engedelyek = false;
}
if (engedelyek==true)Toast.makeText(getApplicationContext(),"engedély megadva",Toast.LENGTH_SHORT).show();
if (engedelyek==false)Toast.makeText(getApplicationContext(),"engedély elutasítva",Toast.LENGTH_SHORT).show();
}
break;
}
}
}manifest-be
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>A program indításakor a beállításokba ugrik: Settings->Alkalmazások->Speciális->Megjelenítés más alkalmazás felett->programod neve->[bekapcsológomb]
ott bekapcsolod az igen kapcsolót, majd kilépve onnan felugrik egy TOAST, hogy engedélyezve, vagy elutasítva. Erre az üzenetre lennék kiváncsi, na meg arra, hogy mi a telefonotok oprendszere (min.Marshmallow, lehetőleg kisebb mint Oreo, de az sem baj, ha valaki megnézi, hogy Oreo alatt megkapom-e az engedélyt)Hálás köszönet: Domel
-
gaben0211
tag
sziasztok. lenne egy kérdésem hogy miként lehet feltölteni appot a play áruházba? már utánna olvastam de azok régi cikkek azóta lehet változott pár dolog. nem vagyok programozó csak egy sima online app creatoros oldallal készített programot feltudok tölteni? vagy az azokkal készített programok lehet nem felelnek meg a google szabályzatnak?
-
domel
tag
Helló!
Próbálok beszúrni egy képet egy Charger Tester nevü programról
(program a Play áruházban), és ennek a programnak van egy olyan tudománya, hogy képes megnyitni egy kis ablakot ami bármilyen megnyitott program fölött van, egy úgynevezett úszó ablakot (floating window). Én próbálok rájönni hogy ez mi, az összes példa OREO-ra készült, mert állítólag ott került bevezetésre, viszont nekem Marshmallow-om van. Widget elvileg nem lehet, mert az a menüben lévő változtatható indító-ikont jelent, és bármilyen megnyíló app eltakarja.Van valakinek ötlete?
Üdv: Domel
-
balazs1022
őstag
Sziasztok!
Android verziot leptep, igy egy korabbi alkalmazasom mar nem kompatibilis.
Valaki at tudna nekem dobni a magyar nyelvet a regibol az ujba?A 2 fajl itt talalhato: [link]
Elore is koszonom a faradozast!

-
thon73
tag
Újabb probléma, ezúttal viszont a gépben van a hiba.
A képernyő 480 fizikai pixel széles (emulátor).
Létrehozok rajta egy ViewGroup-ot, ami "480 px" széles. Ennek egyetlen child-ja lesz, ami egy négyszöget rajzol.A probléma:
A nyégyszög csak akkor kerül a képernyő legszélső pixeljére (elvileg 0. és a 479. pixel), ha:
A ViewGroup onLayout-ban a Child left: 0, a Child right 480 (!!)
A Child-ban a négyszög rajzolásához RectF left 1.0, a RectF right 480.0. (Vastagság természetesen 1 pixel)Bármi mást állítok be, vagy lesz egy üres rész a kép széle és négyszög között, vagy eltűnik a négyszög oldalvonala.
Gondolom, valahol van valami kerekítési hiba. De hogyan lehet akkor ezekkel az értékekkel számolni, hogy pontos méreteket kapjak? Vagy hogyan tudom pont a View szélére tenni a négyszögemet? Van ezzel vkinek tapasztalata? -
thon73
tag
-
Zalanius
tag
Ha jól sejtem, a setArguments megoldást keresed, a példákban legtöbbször egy static [***] newInstance() metódusból kiindulva magyarázzák el. Bővebben itt, keresd a DetailsFragment definíciós részét.
Ha app crash / forceclose utáni újraindulásra gondoltál, akkor ez tárgytalan.
-
thon73
tag
Létezik olyan helyzet, hogy a Fragment újrainduláskor megtartja a saját változóit? Vagyis az onActivityCreated() metódusba úgy jut el, hogy a Fragment osztály változói a korábbi futásban kapott értékeiket tartalmazzák?
-
Zalanius
tag
válasz
[KgP].Robot
#4731
üzenetére
Még az L időkben írtam ilyet, az apache.http.* modulokkal nem is kellett újra feltalálni a meleg vizet, ott volt minden kulcsrakészen. Nagy vonalakban: kellett egy HttpProcessor, HttpService, HttpContext meg egy ServerSocket. Aztán a bejövő requesteket egy runnable és néhány HttpRequestHandler segítségével feldolgozzuk, HttpResponse-ban válaszolunk, kész. És persze az egészet egy Service-ben érdemes valamilyen .start() és .stop() kezelés mögé tenni.
A régi dokumentációkban mindegyik osztályhoz volt annyi favágós és tutorialos kód, amiből az egész összerakható, de mivel 22-es API-tól kezdve ez az egész deprecated lett mindenestül, inkább OFF-ba tettem.
-
[KgP].Robot
aktív tag
Sziasztok!
Irt mar valaki olyan appot, ami TCP szerver volt es csatlakozott hozza egy PC klienskent?
Nem igazan jutok dulore vele. Forditva megy(PC a szerver es az app a kliens).
Esetleg egy forraskod vagy doksi, ami menten elindulhatok?Koszonom
-
Def26
félisten
Azóta változott a dolog. Kaptunk információt, hogy lehet pályázni applikáció készítésének finanszírozására max. 3 millió Ft -ra (közhasznú app. -ra), amit mi is megpályáztunk (csak cégek, magánszemélyek sajnos nem). Az állami keret sem kicsi és a pályázatíró szerint nagyon kevesen pályáznak rá, így nagy esély van, hogy összejöjjön. Ennek fényében újra kértük az ajánlatokat és hát el kell mondjam ez lett a varázsszó... szezám tárulj volt olyan cégeknél is akik előtte elhajtottak. Majd írom hogy éppen mivel haladunk.
-
thon73
tag
Szerintem örülj, hogy egyáltalán találtál vkit., aki megcsinálja. Én elpötyögök egy kicsit androidban, úgyhogy pontosan tudtam, mire van szükség, pénz is volt (és nem kellett alkudni), mégis Prágában találtam az első csapatot, akik érdemben szóba álltak velem. Szóval, az is nagy kérdés, kinek van egy projektre szabad kapacitása. Igaz, ez néhány éve volt, azóta én is inkább "összedobom" magamnak, ha az időbe belefér.
Amúgy ez egy érdekes kérdés, hogy van-e egyáltalán vki, akinek a profiljába elfér a felbukkanó ötletelők ötleteit legyártani. -
vlevi
nagyúr
Ilyen hülye, klikkvadász címet adni egy androidos cikknek :
Androidos telefonja van? Ezeket az appokat tegye rá fel, sokat jelentenek majd
Én személy szerint akkor egyiket sem telepítem, nem szeretném, ha ezek az appok jelentenének
-
Benex
senior tag
válasz
kusztax
#4724
üzenetére
Háááát én ilyet nem mondanék, főleg kezdőként. Kezdőként nagyon nehéz megsaccolni, hogy pontosan mennyi idő is megcsinálni egy adott UI-t hogy jól nézzek ki a régi kicsi telokon is , egy activityt vagy akár a fragmentek kezelése, vagy hogy az összes feature menjen szépen a minsdktól a targetsdk-ig.
-
Def26
félisten
válasz
MrSealRD
#4718
üzenetére
Pontosan átbeszéltük mire van szükségünk, és csak azokkal indulunk ami feltétlen kell bele. Később még tudjuk bővíteni a megbeszéltekkel. Az árban van egy év support is, ami magában foglalja a friss anyag feltöltését is.
Elég nagyok a piacon, korrekt cégnek tűnik és nem egy 5 emberes sufnicég.
kp. meg én is meglepődtem, de ez Magyarország. Ez van...
-
doc
nagyúr
válasz
kusztax
#4713
üzenetére
igazabol Def26-ot kene megkerdezned hogy pontosan milyen vazra gondol

de mivel altalanos, template jellegu dolgokra gondolt, nalam ez mondjuk egy basic layoutot jelentene, egy activityvel meg nehany fragmenttel, ezt meg pillanatok alatt ossze lehet kattintgatni ugy ahogy akarod, szerintem kisebb melo nullarol megcsinalni mint egy felkeszet modositgatnia tobbi resze, maga a program mukodese meg eleve mindenhol mas, azt amugy is meg kell irni
-
Ha én fejlesztő lennék, akkor egy magánmegrendelőnek eleve magasabb ajánlatot adnák, mint egy cégnek, mert azt gyanítanám, hogy a teljesen tapasztalatlan megrendelővel sokkal több probléma lesz: az nem fog lerakni valami korrekt specifikációt, hanem lesz valami elképzelése, amin menet közben folyamatosan változtatni fog.
-
doc
nagyúr
A cegnek teljesen mindegy hogy ceges vagy privat megrendeloje van. A kerdes csak az, melyik fizeti ki.
Nem fog csak azert szazezreket bukni hogy egy magan megrendelonek olcsobban adhassa a munkaerot.
(te peldaul lemondanal a fizetesed felerol csak azert hogy jol jarjon az, akinek a munkahelyed dolgozik?) -
Def26
félisten
válasz
MrSealRD
#4704
üzenetére
Szóban megkérdeztem még egy fejlesztőt és ő is kb. ennyit mondott. Azt hittem ezt a dolgot összecsapja 2 szemüveges muki 3 nap alatt.
Mindegy, 4-500k -ban meg lehet állni, és akkor a többi kérés később kerül bele.Igazából azt nem értem, miért nincsenek ilyen sémák, vázak, valami ami közül lehet választani és akkor ezt csiszolnánk tovább. Miért kell teljesen nulláról kezdeni egy appot?
-
doc
nagyúr
Ha sokallod az arat, te magad is megcsinalhatod azt, amit a ceg:
- alapits egy ceget (lehet egyeni vallalkozas is, az olcsobb)
- keress konyvelot aki elintez mindent
- vegyel fel fejlesztoket akik lefejlesztik az appot
- adj a fejlesztoknek annyi fizetest, amennyiert hozzad mennek (havi felmillios ajanlattal egy tapasztalt fejleszto szoba sem all veled, es nem csak egy fejlesztore lesz szukseg)
- a beruk mellett fizesd meg ki az adokat, kozterheket (az egyszeruseg kedveert vegyuk ugy hogy a fejlesztok netto fizeteset kifizeted az allamnak is)
- meg akkor az aprosagok meg: munkaeszkozok (szamitogepek, telefonok a fejleszteshez/teszteleshez), iroda ahol dolgozhatnak, berszamfejtes, stbszamold ki hogy ez igy mennyibe kerulne neked, tedd hozza azt hogy te mint a ceg vezetoje/tulajdonosa szeretnel megelni belole es nem csak hobbibol tolsz bele tobbmillio forintot az elindulashoz, vagyis a sajat fizetesedet (es az utana megfizetendo kozterheket) add hozza a fentiekhez
Ha a teljes vegosszeg kisebb mint amennyiert a megkerdezett ceg elvallalna a munkat, akkor hajra, vagj bele

-
Az előttem szólóhoz hasonlóan én is úgy veszem ki, hogy az árat sokalljátok. Nos, ez nem egészen olyan téma, hogy bemegyek a boltba és leakasztom a polcról. Nem először olvasom, hogy valakinek van egy ötlete, és akkor fejlesztőt keres hozzá. Aztán innen több irányba is fordulhat a dolog. Van aki halálcsillagot akar a kertbe, de szerinte nem bonyolult és 10 ezerből szeretné okosba megoldani... Másik verzió, ha sikerült megegyezni az árakban, akkor menet közben derül ki, hogy mégse ezt szeretné, mégse így működjön...és még kér bele 16 olyan funkciót amiről szó sem volt az elején. Na ilyenkor indul a vita, hogy ki mit definiál hibának, módosításnak, javításnak, új fejlesztésnek...stb.
Árajánlatot általában úgy lehet adni, hogy tisztában vagyunk mit kell fejleszteni. Van egy specifikáció ami meghatározza az alkalmazás sarokköveit legalább. Itt eltérnek a módszerek. Láttam már olyat, hogy azt írta valaki, hogy titkos és szerződésig nem mondja el... Ami abszurd...bár azt is be lehet árazni.
Szóval kérjetek árajánlatot több cégtől is és akkor jobban érzitek majd, hogy mi a piaci szint és mit tudtok kifizetni.
De én azt javaslom, hogy érdemes a funkciókat úgy kitalálni, hogy az elején azokra a core dolgokra menjen a fókusz amivel már el tud indulni értelmesen az alkalmazás. Utána ha már beindult az üzlet, akkor lehet tovább építeni. -
Benex
senior tag
-
Def26
félisten
Üdv.
Van köztetek olyan aki üzletszerűen készít appokat? Feleségem kitalált valamit amihez szüksége van app. -ra. Idáig egy cégtől kért ajánlatot, majdnem egy millió lett a vége.
-
Zalanius
tag
válasz
[KgP].Robot
#4700
üzenetére
Build.SERIAL, android_id, MAC, tehát nagyjából ami az évek és verziók során szóba jöhetett, valahol mind elvérzik. Átírható root esetén vagy akár anélkül is, vagy változékony (pl. factory reset az android_id-nál), vagy lehet üres (ro.serialno minden további nélkül), no meg a 6-7-8-9 verziókban szigorítások voltak, engedélyek mögé lettek rejtve stb. Van is némi dokumentáció arról, hogy szándékosan nehezítik az ilyesmit, és inkább az "app instance"-féle azonosítási módhoz adnak tippeket. Itt egy olvasnivaló: android.com
Új hozzászólás Aktív témák
- Gyúrósok ide!
- Kormányok / autós szimulátorok topikja
- Magga: PLEX: multimédia az egész lakásban
- Soundbar, soundplate, hangprojektor
- Kábel nélkül a Sapphire VGA-val
- alza vélemények - tapasztalatok
- Apple asztali gépek
- Anglia - élmények, tapasztalatok
- Epic Store Ünnepi Ajándékozás - 7. nap: The Callisto Protocol
- Synology NAS
- További aktív témák...
- Asus laptop E1504F Ryzen 3
- Apple iPhone 15 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! Xiaomi Redmi 9, Xiaomi Redmi 9AT, Xiaomi Redmi 10, Xiaomi Redmi 10 2022
- HIBÁTLAN iPhone 15 Pro Max 256GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen
- Lenovo ThinkPad T14s Gen 3 i5-1245U 14" FHD+ 16GB 512GB 1 év teljeskörű garancia
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: Laptopszaki Kft.
Város: Budapest



Ennek is utánajárok, ha esetleg van tippetek azt szivesen venném.





És a funkcionalitás ezt hogyan követte le?


