Hirdetés
Új hozzászólás Aktív témák
-
domel
tag
Sziasztok! 9-ről 14-es Androidra váltottam és van pár dolog aminek pislogok. Szerencsére a legfontosabb két applikációm kis kepesztéssel de lefordult, a többivel meg majd el szórakozok. Először is ami a leg szembetűnőbb, hogy ha a vissza (bezárás) gombra kattintok, akkor vagy lefut az onDestroy, vagy nem. Úgyhogy most az onBackPressed()-be rakok egy finish()-t, mert más ötletem nincs (az onDestroy-ban mentek, vagy állítom le például az internet rádiót)
Volt egy internetrádiós ébresztőórám is, na az nem működik. Foreground service alatt egy PendingIntent-et állítottam be egy AlarmManager-nek ami a megfelelő időpontban elindította a program Activity-jét, ez most csak úgy működik, ha nem lépek ki a programból, szóval ez így megbízhatatlan.
Harmadik dolog ami így eszembe jut, az a wifi debug. Néha párosodik, akkor boldog vagyok, de leginkább nem. Arra rájöttem, hogy a wifi router 2,4 és 5 GHz-en működik, és ha a PC 5GHz-en, a telefon 2,4GHz-en kapcsolódik, akkor biztosan nem fogják egymást megtalálni, de egyfajta hálózaton látják egymást, mégis valami gebasz van. Úgyhogy marad a kábel. -
domel
tag
Sziasztok! 2018-ban írtam egy sport tracker programot amivel futni járok. A telefon is ősrégi 2018-as (android 9), és most tervezem lecserélni android 13-ra. Annyit tudok, hogy már nem működik az ilyen telefon belső tárhelyére mentés
File root = new File(Environment.getExternalStorageDirectory(), dir);
szóval az lenne a kérdésem, hogy hogyan tudok text fájlokat menteni belső tárhelyre úgy, hogy azt valamilyen módon ki tudjam másolni a számítógépre? Minden telefonhoz adnak windows-os fájlkezelőt, azok mit látnak a telefonból? Az applikációk mappáiba gondolom nem látnak bele, mert abba már régen sem láttak bele, lehet még olyan helyre menteni, ahonnan másik (saját) applikáció is hozzáfér? (illetve a fájlkezelő?)
-domel -
domel
tag
Kettővel ezelőtti probléma megoldása:
Ha Signed APK-t akarunk külső forrásból telepíteni, akkor annak más lesz az SHA1 kódja és nem fog működni a google térkép, de az alábbi kóddal le lehet programból lekérdezni az új SHA1 kódotpublic String getSign(Context context, String key) {String ss="";try {PackageInfo info = context.getPackageManager().getPackageInfo(BuildConfig.APPLICATION_ID,PackageManager.GET_SIGNATURES);for (android.content.pm.Signature signature : info.signatures) {MessageDigest md = MessageDigest.getInstance(key);md.update(signature.toByteArray());byte[] digest = md.digest();StringBuilder toRet = new StringBuilder();for (int i = 0; i < digest.length; i++) {if (i != 0) {toRet.append(":");}int b = digest[i] & 0xff;String hex = Integer.toHexString(b);if (hex.length() == 1) {toRet.append("0");}toRet.append(hex);}String s = toRet.toString();return s.toUpperCase();}} catch (PackageManager.NameNotFoundException e1) {Log.e("name not found", e1.toString());} catch (NoSuchAlgorithmException e) {Log.e("no such an algorithm", e.toString());} catch (Exception e) {Log.e("exception", e.toString());}return ss.toUpperCase();}getSign(getApplicationContext(),"SHA1")ezután már csak létre kell hozni egy másodlagos térkép kulcsot és máris működik a google térkép. (majd egyszer erőt veszek magamon, és áttérek kotlinra)
-
domel
tag
Sziasztok!
Ha Generate Signed Bundle / APK -ban befordítok egy programot és külső forrásból telepítem, akkor miért nem jelenik meg a google térkép??? Vagy ha megváltozik az SHA1, akkor azt hol tudom megnézni? (a signingReportban azt az SHA1-et látom, amit beregisztráltam API kulcsként és amivel fejlesztés közben működik a google térkép) -
domel
tag
Egy programozó szempontjából mi a fene az a custom rom? Mindenre kapok engedélyt? (pl. saját programból mobil hálózatot választok, vagy ilyesmi?)
A lenti (előző) témához csak annyit, hogy mi programozunk, nem foglalkozunk operációs rendszerek telepítgetésével, én a helyedben elvinném szervízbe hogy telepítsék vissza az eredeti oprendszert, kifizeted a kb 10e Ft-ot, aztán próbálgatod tovább, ha még van hozzá kedved -
domel
tag
válasz
thiclyoon
#5383
üzenetére
Visszaszívom az előbbit, mindenki túlbonyolít és elvesztem a részletekben

<?php
$FIREBASE = "https://dom****489775839564-default-rtdb.firebaseio.com/";
$NODE_SAVE = "chat.json";
$message = 'valami';
$data = array(
'mes' => $message
);
$json = json_encode( $data );
$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, $FIREBASE . $NODE_SAVE );
curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, "POST" );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $json);
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
$response = curl_exec( $curl );
curl_close( $curl );
// Show result
echo $response . "\n";
?>
tettem pár csillagot az url-be, mert nincs hozzá beregisztrálva weblap és így bárki belenyúlhat (teszt regisztrációs). -
domel
tag
válasz
thiclyoon
#5381
üzenetére
Nem számítottam rá, hogy ketten is ismeritek a Firebaset, akkor lehet hogy tudtok válaszolni egy problémámra, ami nem android:
a kérdés, hogy egy ilyen realtime adatbázisba hogyan tudok PHP-ből üzenetet küldeni? Azért lenne jó, mert van egy gagyi szoba-kamerám ami mozgásra meghív egy webcímet, de arra buta, hogy egy ilyen webcímen javascriptet futtasson. -
domel
tag
Tölts le működő forráskódokat és belezd ki. Ebből lehet a leggyorsabban tanulni.
A többiektől kérdezném, hogy foglalkozott-e valaki a Firebase valós idejű üzenetküldéssel? Eszméletlen jó, olyanokat lehet vele csinálni, hogy pl egy weboldalról ír neked valaki a chat-be, azt te azonnal megkapod telefonra (android), és az adatokra várakozás 0 bájt, mert websocket alapú az egész. De természetesen android-android programok között is működik a dolog. -
domel
tag
Egy átlag androidos mindent ingyen akar, vagy még olcsóbban. A fizetős felhasználókat lefölözte az Apple, de az ottani fejlesztőkkel meg nehéz versenyre kelni, mert minden profi ott van. Androidon pénzt keresni szerintem kizárólag játékkal lehet, de ahhoz meg kell az isteni szikra, na meg a tudás.
-
domel
tag
Nem értem a problémádat
Ha elindítod az appot, akkor nem mindegy, hogy milyen nyelvű alatta az oprendszer? Én az emulátort simán magyarra állítottam (az android stúdiós emulátorról beszélek). Te írtad a programot? Egy lefejlesztett appot a cégednek nem telefonon kellene bemutatni, ha már úgyis arra készült? (vagy tableten) -
domel
tag
válasz
bandi0000
#5359
üzenetére
Ezeket majd mind kipróbálom, csak most mindjárt éjfél lesz. Amúgy szerintem több applikációs tárhely is van, mert az alábbi kód nem oda menti a saját tárhelyre, mint amit te írtál: Android/data, hanem data/data/-package-/
static void ContextSaveStringArray(Context context, final String dir, final String nev, String[] adat) {
try { //data/data/$package$/app_$dir$/$nev$
ContextWrapper cw = new ContextWrapper(context);
File root = cw.getDir(dir, Context.MODE_PRIVATE);
if (!root.exists()) root.mkdirs();
File gpxfile = new File(root, nev);
FileWriter writer = new FileWriter(gpxfile);
for (String member : adat) {
writer.append(member + "\n");
}
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
} -
domel
tag
Helló! Kezembe akadt egy Android 10-es telefon, (eddig jól megvoltam az Android 9-el) és nem tudok menteni a saját mappán kívülre. Olvasgatok a neten, hogy már nem is lehet a jövőben, meg hogy mentsek a publikus Dokumentumok mappába valamilyen almappába, de nekem az sem működik:
File dir_ = new File(Environment.getExternalStoragePublicDirectory(DIRECTORY_DOCUMENTS).getPath()
+ "/foldername/");
if (!dir_.exists()) {
boolean a= dir_.mkdir();
Toast.makeText(getApplicationContext(), "not exist & "+a, Toast.LENGTH_SHORT).show();
}
még a mappa sem jön létre.
Ismeri valaki az új szabályokat? Mi értelme ennek a folyamatos szigorításnak?
-----------------------------------
Megint Android 10, jön egy sms, a beregisztrált osztály meghívódik, aztán azIntent i = new Intent(context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtras(intent.getExtras());
context.startActivity(i);
Activity nem hívódik meg. Megint keresgélés, kell neki<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
és meg kell kérni a user-t, hogy állítsa be az applikációnak, hogy működhessen más applikációk felett, mert azt programból nem lehet beállítani. Mi van??? Van egy applikáció, amit meg kell védenem saját magamtól?
------------------------------------
A fent említett Android 10.es telefon a rokonomé, be akartam neki állítani egy saját csengőhangot (mp3), de nincs rá mód. Felmásoltam egy mappába az mp3-at, de nem látja a telefon, se a zenék, van ott egy Ringtones mappa, abba másoltam de ott se látja. Android Stúdióban létrehoztam egy virtuális telefont Android 10-el, és ott is minden ugyanúgy van, vagyis nem működik.
-------------------------------------
hatodik éve nyomom androidban, és ott tartok mint az elején, lesek ki a fejemből mint egy hülye, és nem értem az egészet. Mióta android van, minden újabb verzióval csak korlátozás-korlátozás-korlátozás-korlátozás-korlátozás-korlátozás-korlátozás-korlátozás....Valaki tud valamelyik témában segíteni?
Köcce! -domel
-
domel
tag
Egy kis érdekesség karácsonyra.
MatrixEffect.javapackage hun.domel.maxrict;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import java.util.Random;
public class MatrixEffect extends View {
private static final Random RANDOM = new Random();
private int width, height;
private Canvas canvas;
private Bitmap canvasBmp;
private int fontSize = 35;
private int columnSize;
private char[] cars = "+-*/!^'([])#@&?,=$€°|%".toCharArray();
private int[] txtPosByColumn;
private Paint paintTxt, paintBg, paintBgBmp, paintInitBg;
public MatrixEffect(Context context, AttributeSet attrs) {
super(context, attrs);
paintTxt = new Paint();
paintTxt.setStyle(Paint.Style.FILL);
paintTxt.setColor(Color.GREEN);
paintTxt.setTextSize(fontSize);
paintBg = new Paint();
paintBg.setColor(Color.BLACK);
paintBg.setAlpha(5);
paintBg.setStyle(Paint.Style.FILL);
paintBgBmp = new Paint();
paintBgBmp.setColor(Color.BLACK);
paintInitBg = new Paint();
paintInitBg.setColor(Color.BLACK);
paintInitBg.setAlpha(255);
paintInitBg.setStyle(Paint.Style.FILL);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
width = w;
height = h;
canvasBmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
canvas = new Canvas(canvasBmp);
canvas.drawRect(0, 0, width, height, paintInitBg);
columnSize = width / fontSize;
txtPosByColumn = new int[columnSize + 1];
for (int x = 0; x < columnSize; x++) {
txtPosByColumn[x] = RANDOM.nextInt(height / 2) + 1;
}
}
private void drawText() {
for (int i = 0; i < txtPosByColumn.length; i++) {
canvas.drawText("" + cars[RANDOM.nextInt(cars.length)], i * fontSize, txtPosByColumn[i] * fontSize, paintTxt);
if (txtPosByColumn[i] * fontSize > height && Math.random() > 0.975) {
txtPosByColumn[i] = 0;
}
txtPosByColumn[i]++;
}
}
private void drawCanvas() {
canvas.drawRect(0, 0, width, height, paintBg);
drawText();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(canvasBmp, 0, 0, paintBgBmp);
drawCanvas();
invalidate();
}
}
activity_main.xml<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<hun.domel.maxrict.MatrixEffect
android:layout_width="match_parent"
android:layout_height="match_parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="128dp"
android:layout_marginTop="160dp"
android:text="Button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
A package name-t mindkét helyen javítsd a sajátodra, a MainActivity.java-hoz nem kell nyúlni -
domel
tag
Szerintetek lehetséges még kamerát használni lekapcsolt képernyővel? Néztem a play árúházat, száz nem működő mellett találtam egyet ami működött. Első nekifutásra service-ben már egyáltalán nem lehetséges, se lekapcsolt képernyőn, de még akkor sem ha háttérbe kerül az app. Tudom a kémkedés meg minden, de a lollipop idejében szerettem ezt a funkciót, mert úgy tudtam videózni, hogynem kellett attól félni, hogy belenyúlok a képernyőbe
-
domel
tag
Egy applikációmról videós bizonyítást kértek, hogy mi szükség van Service módban (activity nélkül is működő) a GPS adatokra. A program egy sport tracker volt, ahol nem lenne jó, ha a futó félúton véletlenül kilőné az app-ot. Szintén így jártam egy árúszállítós appal, ahol valaki bejárja az útvonalat, és utána a frissen felvett sofőrt nem kell betanítani, hanem a fenti program végig navigálja az útvonalon. De abba is belekötöttek már, hogy ha a kért engedélyeket a felhasználó nem adja meg, akkor én egyszerűen kiléptettem a programból, na ez szabálytalan, mert alternatív lehetőséget kell nyújtanom neki arra az esetre is, ha ő nem ad meg valamilyen engedélyt. Már minden appom valamilyen okból inaktívvá tettek a Play-en, de már nem érdekel....
-
domel
tag
Sajnos ma ott tartunk, hogy Magyarországon nem bír életben maradni egy android fórum sem. Ez szomorú. Ott van még a Prog.hu, az android részleg ott is döglődik, és ehhez nagyon sokat hozzátett az ottani moderátor hozzáállása is. Arra is kiváncsi lennék, hogy ma Magyarországon egyáltalán mennyi android programozó van, de az a gyanúm, hogy 100 alatti ez a szám (inkább 50). Magát az androidot is évről évre lehülyítik, lassan már semmihez nem lesz jogosultságom, és minden új android verziónál meg kell szenvednem, hogy újra működésre bírjam a régebbi programjaimat. A Play árúház is lassan belefullad a GDPR-ba, a GPS-t használó programjaimat is szépen leszedték, mert hogy a GPS érzékeny felhasználó adat, ezért én adatkezelő vagyok, de az adatkezelés semmilyen formájának nem felelek meg. Ahol programozók vannak, ott fórum is van, és ha csak ezt nézem, akkor Magyarországon mindenki Javascriptben és PHP-ben nyomja...
-
domel
tag
válasz
angyalpc2
#5274
üzenetére
Félelmed jogos!
Én egyszer úgy jártam, hogy egy nehezen megszerezhető adatbázist raktam a raw mappába, aztán egy év múlva unalomból letöltöttem az apk-t külső forrásból, mert a play áruház applikációi egy csomó más szoftverboltban is megjelennek a tulajdonos engedélye nélkül, na szóval letöltöttem, átneveztem az apk-t zip-re, majd belenéztem, és ott volt az én féltve őrzött adatbázisom eredeti formájában. Windows alatt a resource tartalom befordítódik az EXE-be, viszont android alatt ez nem így van. -
domel
tag
Üdvözlet!
Valaki homályosítson fel légyszi, hogy Kotlinban az ilyen callback dolgok hogyan mennek:
Van például a BroadcastReceiver onReceive, ami Java alatt
BroadcastReceiver br= new, majd nyomok egy ctrl+SPACE-t, és ott a listában BroadcastReceiver(){...} amiről már lehet sejteni, hogy az egy visszahívás.
Kotlinban aztán nyomhatom a CTRL+Space-t, nem történik semmi.
Amúgy a megoldás ez:var br: BroadcastReceiver = object : BroadcastReceiver(){
override fun onReceive(context: Context?, intent: Intent?) {
Log.i("TTAG", "onReceive: zzz")
}
}
van valami módszer vagy gyorsbillentyű, hogy egy fenti kódot segítségül kapjam?
Vagy vegyünk egy könnyebb példát:findViewById<TextView>(R.id.logi).setOnLongClickListener{ }
itt meg feldob egy buborékot: i: View.OnLongClickListener? Minek kérdez? Mit csináljak vele?
Persze az utolsó betűnél ott is feldob egy kis segítséget:
setOnLongClickListener() {...} (l: (View!) -> Boolean)?)
de ha csak sima click-listenert nézzük, akkor
setOnClickListener() {...} (I: (View!) -> Unit)?)
vagyis elég logikátlan a segítség, az elsőnél akkor hol marad az unit?. Oké, most tanulom a Kotlint, meg minden probléma tartott fél percig, csak azért kérdezek, mert lehet hogy feleslegesen szenvedek...
Üdv: Domel -
domel
tag
válasz
inf3rno
#5184
üzenetére
jajj... [videó]
Szóval a beállításokban a legalsó menü: Rendszer->Telefon névjegye->Build-szám, na azt nyomd le 5-10-szer, és bekapcsolódik a fejlesztői mód. Ez nélkül az Android Stúdió nem fogja tudni felvinni az appot a telefonra.
Tehát nem állsz neki a fájlkezelővel mókolni, hanem rádugod a telefont a gépre, megírod a programot, rányomsz a zöld (play) háromszögre és a telefonon öt másodperc múlva elindul a program -
domel
tag
válasz
inf3rno
#5175
üzenetére
Nincs itt semmi ceritfikát. Befordítod, kapsz egy apk fájlot, azt elküldöd a haverodnak, ő a telefonján a beállítások között beikszeli hogy telepíthet külső forrásból, aztán elindítja az apk fájlot, és feltelepíti. Ceritfikát a Play áruházhoz kell, hogy ne tudd más applikációját sajátodként feltölteni
-
domel
tag
válasz
inf3rno
#5171
üzenetére
Én 2-3 éve telepítettem az android stúdiót, akkor még a Java legújabb verzióját kellett az android stúdió telepítése előtt telepíteni. Nem tudom hogy ilyen kell-e még. És egy éven volt egy AVG antivírus vírusírtóm, ami folyton törölte vagy karanténba tette az android stúdió compiler részét
-
domel
tag
Frissítettem egy programot a Play Áruházban, és ahogy az lenni szokott, egy órás kepesztés után jött csak össze. November óta csak 29-es API szinten lehet feltölteni/frissíteni, és így generáltak nekem (mint mezei programozónak) egy jó kis feladványt. Kezdődött azzal, hogy [alkalmazásom]>Éles verzió, és ott az Új kiadás létrehozása gomb szürke maradt. Az üzenetek között észrevettem, hogy nyilatkozni kell, hogy a program nem hírcsatorna, ezt megtettem, de továbbra is szürke maradt. Stack Overflow olvasgatás, majd Éles verzió>Kiadások>Kiadás részleteinek megtekintése>Kiadás részleteinek szerkesztése, na és ide van eldugva a feltöltős oldal. Feltöltöttem az app-ot, de nem volt jó, mert mint fent említettem, minimum 29-es API kell neki! Átállítottam a Gradle-ben a 28-at 29-re, aztán vörösbe borult minden:
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
próbáltam 29-es verziót keresni, de nincs, mert ez a formátum így megszünt! Megint Stack Overflow olvasgatás, majd jobb klikk, Refactor>Migrate to androidX, és lett ez:
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
na ezt már elfogadta, nyomtam egy éles verzió gombot, és várom hogy elbírálják. Ha most belépek a Console-ba, már minden a régi, vagyis az Új verzió létrehozása gomb újra aktív. Még egy érdekesség, hogy a compileSdkVersion/targetSdkVersion 29 lett, de a telefonom Android Pie (28), mégis gond nélkül felment a telefonra is az új verzió, régebben ezt szerintem nem engedte meg. Remélem volt akinek tudtam segíteni.
Üdv: -domel -
domel
tag
Én kettőt tudnák megemlíteni. Az egyik az aláíró kulcs, én 2016-ban az első app felrakásakor frankón el is vesztettem az aláíró kulcsot (*.jks), azóta a program elavult és semmit nem tudok vele csinálni. Úgy tudom 2018 óta valahogyan lehet új aláíró kulcsot igényelni, de az enyém korábbi, elvileg angolul valahol meg kell indokolni hogy miért szedjék le, és akkor leszedik.
A másik dolog az adatvédelmi irányelvek. Amilyen egyszerűnek tűnik, hogy írsz valamit, a valóságban formai hibával visszadobják, meg egy linket hogy legyen mit olvasgatni a témában, és a harmadik ilyen után befordulsz. Én negyedik nekifutásra egy ismert applikáció adatvédelmi irányelvét írtam át a sajátomra, na azt úgy elfogadták.
Fél évente frissítek, arra mindig valamit máshová tesznek a play console -n, így minden frissités egy kepesztés
-
domel
tag
válasz
bandi0000
#5109
üzenetére
Csak pirossal aláhúzza, vagy hibával meg is áll a fordítás?
Én pont tegnap szívtam egy olyannal, hogy ezt: implementation 'com.android.support:appcompat-v7:28.0.0' nem fogadta el, mindenféle hamis hibákat írt, aztán mikor ezt: implementation 'com.android.support:support-v4:28.0.0' alá tettem, akkor meg hirtelen minden jó lett. A diffutilt nem ismerem, nem merek így okoskodni.
Tegnap frissítettem valamimet a play áruházban, és ott láttam, hogy augusztustól az új appok 29-es api szinten kell hogy működjenek, novembertől meg a frissítéseknek is 29-es api szintre kell hozniuk az applikációkat. Eléggé meglepett, hogy ennyire belepofáznak. Emulátoron kell fordítanom, mert ennyire új telefonom nincs is -
domel
tag
válasz
Oldman2
#5107
üzenetére
Én személy szerint örülök is neki, hogy kiiktatták a Huawei-t, mert van még pár hülyesége neki: például az SD kártya, abból csinál egy virtuálisat belső tárhelyre, és akármit csinálok, csak azt érem el, a valódi SD kártyát meg ő a saját kamera szoftverével. Előző telefonomon nem engedte az akkumulátor fogyasztást lekérdezni (hogy mennyi milliwattal merül), de a háttérben futó Service-t (ami activity nélkül fut) is kilövi egy idő után, kivéve ha a felhasználó a beállításokban külön megengedi ezt a programnak, de vannak a "baráti" appok, amiknek meg simán megengedi (messenger, runtastic,stb.) Csak a Huawei telefonoknál nem lehet kikapcsolni a telefon feloldását, ha van olyan ember mint én, hogy idegesíti az egész, és a bekapcsoló gombbal egyszerre a főmenüben akar lenni, mert nincs semmi ellopni való a telefonon, akkor azt nem tehetem meg, mert ha mindent kikapcsolok (ujjlenyomat, pin) akkor is ott a zárképernyő amin végig kell húzni az ujjamat.És minden még eszembe sem jutott..
-
domel
tag
Helló! Ti be-ki tudjátok kapcsolni a Bluetooth-t programból anélkül, hogy megerősítő dialog ablakot dobna fel az Android?
Az a gyanúm, hogy ez csak a Huawei hülyesége, mert már volt hasonlóra példa. Feltettem a fenti program forráskódját ide, légyszi akinek van rá ideje nézze meg egy NEM Huawei telefonnal, elsősorban Android Pie vagy magasabb oprendszer viselkedése érdekel. Minden segítséget köszönök!
-domel -
domel
tag
válasz
lanszelot
#5104
üzenetére
Egy hónapja tetted fel az első kérdésed és nem értesz semmit. Mi évekkel ezelőtt kezdtük, és értünk hozzá "valamennyire". Tehát arányaiban ott tartasz mint mi, ha lebontjuk időarányosan.
Napi hat óra programozgatással két év múlva már fogsz írni egy normálisabb programot. Ez rengeteg idő. Hiányzik ez neked? -
domel
tag
válasz
lanszelot
#5095
üzenetére
Nem fogadod meg senkinek a tanácsát. Az én tanácsom az volt, hogy tölts le kész működőképes programokat, és belezd szét. Totál kezdőként ne osztályokat meg eljárásokat hozz létre, hanem írd át egy működő program forráskódját úgy, hogy másképp működjön. Ebből fogsz tanulni. Én négy éve azt se tudtam, hogy egy android program hol indul el, két év múlva olyan sport trackert írtam futáshoz, hogy a Runtastic pontosságával vetekedett. És igen, itt lassan megy minden. Három hónapba telt mire rájöttem, hogyan lehet olyan háttérben futó alkalmazást csinálni, aminek még az sem számít, ha kilövöm az applikációt a task menüből. Szerintem jó programozó csak abból lesz, akinek a hobbija is a programozás. Az androidnak is annyi területe van, hogy nagy valószínűséggel senki nem fog neked segíteni, hiába van itt 10-15 profi, ők másban profik
-
domel
tag
válasz
bandi0000
#5057
üzenetére
Ránéztem arra a videóra.. Totál kezdőknek szánt videóban myFunction-nek nevez el a fószer egy függvényt, aztán csodálkozunk ha a célközönség azon agyal, hogy "mit csinál az a myFunction". Lanszelot gyerek nekiállt kotlinban programozni tanulni ami nagyon dicséretes, csak ember nem lesz aki segítsen neki.
-
domel
tag
válasz
z123456z
#5058
üzenetére
Ezt nem is én csináltam, hanem legenerálta a fordító. Én a Layout editorban raktam le két GuideLine-t, egy vízszinteset, egy függőlegeset, plusz EditText plusz Button, és hozzá igazítottam a GuideLine-hoz, kb fél perc alatt. Ha te a fenti kódot bemásolod a saját Layout xml részbe, akkor nálad is működik.
-
domel
tag
válasz
z123456z
#5052
üzenetére
A kérdésed elég tárt fogalom, de így látatlanban:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.13543092" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.66909975" />
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Button"
android:layout_marginEnd="20dp"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editTextTextPersonName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toStartOf="@+id/guideline3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> -
domel
tag
válasz
lanszelot
#5047
üzenetére
Lanszelot te most ki is vagy? Totál kezdő? Ismersz még bármilyen programnyelvet? C64 az mikor volt? Mert onnan ismerős egy lanszelot.. Az android tanulás az egy csomó zsákutca, kezdve a youtube videókkal, ahol lesheted 40 percen keresztül valakinek a szerencsétlenkedését (mellégépelés, indiai akcentusú angol, mellégépel egy teljes sort, amit te észreveszel, ő nem, majd kepeszt (gépel egy ujjal) és visszatörli), github az megint egy zsákutca, onnan letölthetsz kész projektet, csak a valóságban soha nem tudod betölteni az android stúdióba (pilóta vizsga kell hozzá), és persze vannak a forráskódok amik már rég elavultak..
Amit én tudok neked javasolni, hogy szerezz kész programot amit betölthetsz az android stúdióba, és belezd szét, mert abból lehet tanulni a leghatékonyabban. Mikor létrehozol egy új projektet, soha ne a legújabb api szintet állítsd be, mert arra még kevés példát találsz, és kevés a készülék is, amin fut. Ha android 10-ed van, akkor android 8 legyen az alja, max android 6, mert onnantól változott meg lényegesen a programnyelv, (Lollipop (android 5) azt már felejtsd el). A stack overflow az a legprofibb oldal programozóknak, ott zsenik vannak, ott mindig mindenre tudják a választ, viszont mindig nézd meg a bejegyzések/válaszok dátumát, mert egy 2016-os hozzászólással már lehet hogy semmire sem mész. Ha budapesti vagy, akkor tied a világ, beiratkozol egy iskolába, és mindent megmutatnak. Régen az internet előtt még voltak ilyen programozói party-k, egy kultúrházban vagy kibérelt iskolában összejött párszáz ember, de mára ilyen nincs, az ember magára maradt. Az SDK letöltögetésével én nem szoktam foglalkozni, ha valami hiányzik neki, úgyis feldob egy ablakot, hogy letöltse-e. Ha kell valami egyszerűbb program, szólj, adok és belezd. Én mondjuk nagyon elmentem a navigáció és térképészet irányába, de ha gondolod adok egy gagyi internetrádiós ébresztőórát, de ha téged adatbázisok érdekelnek, biztos olyant is tud adni valaki -
domel
tag
Helló! Hogyan lehet megállapítani egy View-ről, hogy az Button vagy TextView?
String buttonID = "gomb1";
int resID = getResources().getIdentifier(buttonID, "id", getPackageName());
View v= findViewById(resID);
if (v instanceof Button)Log.i("TTAG","button");
if (v instanceof TextView)Log.i("TTAG","textview");
Ha a String-be beírom hogy "gomb1" ami Button, akkor azt Button-nak és TextView-nek is látja, de ha a String "osszeg1" ami TextView akkor azt csak TextView-nek látja.
Köcce! -Domel -
domel
tag
Ezekkel az üzlethelyiségbe kirakott prezentációs tabletekkel kapcsolatban (kettő hozzászólással felettem) lenne egy kérdésem:
Meg lehet azt oldani egy androidos tablettel, hogy a hülyegyerekek ne nyomkodják el, ne lépjenek ki a programból? Vagy marad a keretbe szerelt tablet, ami letakarja az alsó-felső értesítési és menü-sávot a képernyőből? -
domel
tag
válasz
thiclyoon
#4993
üzenetére
Működik a kódod, úgyhogy van nagy öröm! Természetesen az volt az első, hogy megnézzem mi a különbség a kettőnk észjárása között, és a következő sorok voltak döntőek:
Context ctx = getApplicationContext();
Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));
én mindenre gondoltam, csak erre nem. Tehát letölti a térképet, lementi, és onnan tölti be, vagyis töltötte volna be, ha le tudta volna menteni.
Hálás köszönet a segítségedért, egy hetes kepesztés végére tettél pontot.
Üdv: -domel -
domel
tag
OpenStreetMap még mindig, csak most felkészültebben teszem fel a kérdést
Szóval az a bajom, hogy nem tölti be a csempéket, max egyszer, de ha elhúzom a térképet egy másik városra, akkor óriás-pixeles lesz a térkép.
Tehát az a baj, hogy nem frissíti a csempéket. Felteszem ide a forráskódot, egy végtelenül egyszerű kód, ha lenne ideje rá valakinek, az ránézhetne:
[link]
ha amapView.setTileSource(TileSourceFactory.MAPNIK);sort átjavítommapView.setTileSource(TileSourceFactory.OpenTopo);-ra, akkor azzal a térképpel meg működik, de nekem pont nem topográfiai térkép kell. Az a gyanúm, hogy csak nálam jelentkezik a hiba, idegen telefonon menni fog
Előre is köszönöm a segítséget! -domel -
domel
tag
Helló! OpenStreetMap-et használt már valaki? Elhúzom a térképet valamerre, és nem tölti be az újabb "csempéket", csak hébe-hóba, homályos-óriáspixeles lesz a térkép. Mi lehet a baj?
-Domel -
domel
tag
Helló!
Csináltam egy androidos mappa törlő programot windows alá, ezeket törli:
\app\build
\.gradle
\.idea
\build
archiváláshoz jól jön, ahhoz felesleges 50-60 megákat tárolni, mikor elég a tizede is.
Ha valakinek pont erre van szüksége az töltse, ez egy exe amit a project könyvtárakhoz (nem bele, hanem mellé) másold.
www.domel.hu/Androidbetorlo.zip
Üdv: Domel -
domel
tag
válasz
Ablakos
#4932
üzenetére
Nem tudom ennek gányolás nélkül mi a hivatalos módja
public class MainActivity extends AppCompatActivity {
Handler handler= new Handler();
int mCount;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handler.post(ru);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mCount = savedInstanceState.getInt("count");
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putInt("count", mCount);
super.onSaveInstanceState(savedInstanceState);
}
@Override
protected void onDestroy() {
handler.removeCallbacks(ru);
super.onDestroy();
}
Runnable ru= new Runnable() {
@Override
public void run() {
Log.i("TTAG","--:"+mCount);
mCount++;
handler.postDelayed(this,1000);
}
};
} -
domel
tag
Helló!
Kaptam egy levelet a Play Console-tól, hogy egy régóta fent lévő programom megsértette az adatvédelmi irányelveket, egészen pontosan "a gyermekeket vonzó elemeket tartalmazó alkalmazásoknak meg kell felelniük a családokra vonatkozó összes követelménynek".
??? Huhh... Még a kérdést felfogni is nehéz, mert a program azt tudja, hogy gps-ről megnézi hogy melyik buszmegállóban állok, és írja, hogy oda mikor jön busz.
1. kérdés: tudtok valami sablon szöveget erre, vagy egyáltalán minek kell megfelelnem? Ígérgetni, hogy nincs káromkodás, nincs felnőtteknek való rajzok, nem ölök meg senkit a programban, stb??
2. csak magyar nyelv van beállítva, akkor írhatom ezt a "családpolitikai irányelvet" magyarul is? Ki olvassa el? Magyar?
Igazából fontos lenne a 14 év felettiek elérése, mert leginkább ők buszoznak..
Jöhetne pár tipp, nagyon megköszönném!
Üdv: Domel -
domel
tag
Helló! Írtam egy intrót, felrakom ide a forráskódot, akinek pont egy ilyen kell "a program készítője" oldalra, az használja fel nyugodtan. [download zip]
Ahhoz képest hogy régen egy demoscene csapat tagja voltam, másfél napig tartott megírni, abból egy napig hibát kerestem. Aki letölti az fordítás előtt nyomjon egy Rebuild Project-etDomel
-
domel
tag
Helló. Átálltam Oreo-ra, féltem tőle mint a tűztől, nem alaptalanul..., de szerintem a Lollipop-Marshmallow átállás durvább volt. Az én specialitásom a háttéralkalmazások, az akkor is működő programok, ha látszólag mindenből kilép a júzer. Márpedig az Oreóban pont itt történtek a legnagyobb változások, usert és programozót agresszíven próbálják terelni az energiatakarékos alkalmazások irányába. Van ez a doze mode, ami eddig is volt, de most sokkal durvábban, a telefon kikapcsolás után négy perccel bealszik, és megáll minden élet. Napokba tellett kiderítenem, hogy mikor bealszik a telefon és megállt az internetrádió, hogy azt miért tette annak ellenére, hogy a processzort nem hagytam aludni (wifit és mobilnetet is lekapcsolja, meg gps-t és gyakorlatilag minden hardwert) és hogy ezt hogyan lehet megkerülni. Itt a megoldás az előtér-szolgáltatás volt (foregroundService), ha tudja valaki hogy egy sima activity esetében hogy lehet az alvó telefonon a wifi-mobilnetet bekapcsolva hagyni, az ne tartsa magában. A másik érdekesség a Notifikációs sáv használata
Intent notificationIntent = new Intent(this,MainActivity.class);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this,1,notificationIntent,PendingIntent.FLAG_CANCEL_CURRENT);
Notification notification= new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("XixiRádió")
//.setContentText("vattafaki")
.setSmallIcon(R.drawable.ic_radio)
.setContentIntent(pendingIntent)
.build();
startForeground(1,notification);
a fenti kód nem jelenít meg ikont az értesítési sávban, hanem helyette egy system ikon jelenik meg, ami azt jelzi, hogy többek között van egy program(unk) ami energiát fogyaszt a háttérben. Itt a megoldás az, hogy Oreo alatt applikációs szinten (Manifest <application -is be kell regisztrálni egy osztályt, amiben létrehozunk egy NotificationChannelt, majd annak az ID-jére hivatkozunk az Activity vagy Service-ben létrehozott Notifikációs ikon, vagy indítóikonok esetében. Amúgy az oreo valóban keveset fogyaszt mikor ki van kapcsolva a telefon, este feltöltöm, reggel mikor ébreszt, még mindig 100%-on van a telefon. Egyenlőre ennyi volt az észrevételem öt nap alatt az Oreo-val kapcsolatban-domel
-
domel
tag
Ez itt egy programozói oldal. Úgy gondoltuk, hogy ha akarsz valamit, mi segítünk, és TE létrehozod. Amúgy szerintem olyant nem lehet jelenleg csinálni Androidban mint a Windows tálca, hogy lecsíp egy darabot a képernyőből, és ami alá megy, az olyan mintha kívül esne a képernyőn ( a Windows-ban viszont lehet, emlékszik még valaki az ICQ-ra? Az egy chat volt a képernyő jobb oldalán, és átméretezte a képernyőt, a teljes méretű ablakok sem takarták el). Néztem a "tálca" nevű appot itt androidon, az is hogy jól nézzen ki és használható is legyen, a "tálca" alá nem szabad indítóikont rakni. Amúgy neked miért nem felel meg az a program (ha már nem akarod megírni magad a programot)???
-
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
-
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?
-
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
-
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 -
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
-
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.
-
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
-
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
-
domel
tag
Ezt valaki ki tudná próbálni? A kód elvileg kiírja, hogy hány miliamperrel tölt a telefon... akinél működik, az írja meg lécci, hogy mi a telefon márkája. Köcce!
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
this.registerReceiver(this.batteryinfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
private BroadcastReceiver batteryinfoReceiver = new BroadcastReceiver(){
public void onReceive(Context context, Intent intent){
long currentInstantMicroAmperes = 0;
long currentAvgMicroAmperes = 0;
BatteryManager batteryManager = (BatteryManager) context.getSystemService(context.BATTERY_SERVICE);
currentInstantMicroAmperes = getSpecialValue(batteryManager, BatteryManager.BATTERY_PROPERTY_CURRENT_NOW);
currentAvgMicroAmperes = getSpecialValue(batteryManager, BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE);
textView.setText("ZZ2: = "+ currentInstantMicroAmperes + " mAh"+"\n"+
"ZZ1: = " + currentAvgMicroAmperes + " mAh");
}
};
private int getSpecialValue(BatteryManager batteryManager, int key) {
int value = batteryManager.getIntProperty(key);
return value;
}
} -
domel
tag
Hi! Egy kényelmi funkciót fedeztem fel, remélem lesz akinek ez még új:

úúú -enter, és az editor egy korábban megírt kódot szúr be a helyére
-
domel
tag
Helló! Google Maps API-ról lesz szó:
Van egy program, ami végig navigál egy előzőleg bejárt útvonalon, mindezt egy google map térképen teszi. A probléma ott kezdődött, hogy menet közben nem frissültek a térkép csempéi, mintha nem lett volna internet:
Mivel a probléma csak vezetés közben jött elő, ezért napokba tellett mire rájöttem, hogy az animateCamera okozza a gubancot, mert mint kiderült, amíg animálva ráállt az adott koordinátára, addig nem frissült a térkép, és mivel a GPS jelek meg jönnek másodpercenként és az animálás is kb ennyi ideig tartott, ezért egy pillanatra sem töltöttek a térkép-csempék, és elmosódott térképen haladtam.
A megoldás, hogy lehet figyelni, hogy mikor fejeződött be az animáció, és ameddig ez tart, addig nem szabad újra az animateCamera-t futtatni. Valahogy így:if (kameramozog==0) {
kameramozog=1;
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(camPos), new GoogleMap.CancelableCallback() {
@Override
public void onFinish() {
kameramozog= 0; //akkor fut le ha véget ért az animáció
}
@Override
public void onCancel() {
kameramozog=0; //akkor fut le, ha az animációba belenyúltak, vagy új animateCamera indul
}
});
}ezt csak azért írtam, hogy ha valaki belefut ebbe a problémába, akkor talán eszébe jut hogy valaki már megszenvedte ugyanezt, és kész a megoldás.
Üdv: Domel
-
domel
tag
Helló. Azt tudja valaki, hogy hogyan lehet SD kártyára menteni mondjuk egy képet? Bármilyen módszerrel próbálom, mindig csak emulated sd kártyára ír a belső tárhelyen,
mFile = new File(getActivity().getExternalFilesDir(null), "ez.jpg"); //vagy
mFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString(),"az.jpg");
vicc az egészben, hogy még permission-t is kér külső tárhelyre, és ha a manifestben az android:installLocation -t külső tárhelyre állítom, még akkor is emulált belső tárhelyre ment
(Lollipop)
Köcce!
-Domel -
domel
tag
Helló mindenki!
Van egy applikációm, befordítva 4,1 mega (APK), a forráskód 91 mega és 4037 fájlból áll.
Android Studió elindítása először és a fenti program betöltése: 145 másodperc
Android Studió elindítása másodszor(tól) és a fenti program betöltése: 95 másodperc
Program befordítása első alkalommal: 31 másodperc
Program befordítása második alkalomtól: 13-15 másodperc
Nougat emulátor elindítása: 60 másodperc
Program befordítása ha emulátorra megy: 9 másodpercAzt szeretném kérdezni, hogy SSD-vel mennyivel lenne gyorsabb?
Üdv: Domel
-
domel
tag
Sziasztok! Van valakinek Nougat-os telefonja??? Szeretném ha kipróbálná valaki:
[https://play.google.com/store/apps/details?id=hun.domel.zaxxon]
Egy kocka fog forogni felül, alul a felhasználó piros lesz, és azt írja ki, hogy felhasználó elutasítva (akit érdekel hogy Sopronban mikor jön a busz online azt beregisztrálom, de sok értelme nincs, mert a buszmegállóban kell állni amit a GPS figyel)
Egy ismerősöm van Nougat-os, ő azt állítja, hogy a kocka forog, és alul nem ír ki semmit (vagyis ami eredetileg volt a TextView android:text= -ben)
Nekem emulátoron működik, a hiba akkor jön elő, ha az elején a GPS kérelmet nem engedélyezem, de az ismerős állítja hogy ő engedélyezte.
Nálatok mi a helyzet?Előre is hálás köszönet a segítőnek!!
Üdv: Domel
-
domel
tag
válasz
[KgP].Robot
#4284
üzenetére
Abban bíztam, hogy van működőképes Google Cloud Message vagy Pusher chat-ed, mert nekem ezek a mai napig nam jöttek össze, A Pusher az ilyen websocket szolgáltatás, de valami thermo hibával elszáll, pedig az lenne az igazi, egy olyan chat mint pl a facebook chat, hogy nem kéne másodpercenként lekérdezgetni a szervert, hanem csak akkor jön adat, ha valaki üzent
-
domel
tag
válasz
[KgP].Robot
#4282
üzenetére
Robot miféle chat-et csinálsz? Mármint mi a chat motorja? Google Cloud Message, vagy Pusher, Azure, vagy saját magad bütykölöd a szerver oldali részt is (PHP)?
-
domel
tag
válasz
[KgP].Robot
#4273
üzenetére
én nem chat programot írok de van recyclerview a programban, és kiváncsiságból beraktam egy edittext-et a reciclerview alá, és nálam nem veszti el a fókuszt, olyannyira nem, hogy még görgethetem is a cardview-et, sőt a cardview-en a button gombot is lenyomhatom, akkor is villog tovább a kurzor, ha gépelek akkor természetesen meg is jelennek a betűk.
-
domel
tag
válasz
gyurkikrisz
#4270
üzenetére
Köszi az eddigi választ!
...és az lehetséges, hogy MainActivity és Service közé ékeljek be Interface-t??? Mert a szokásos módon nem tudom átküldeni az Interface osztályát (vagy micsodát) a service-nek, mert mikor a startService lefut, onnantól mintha egy párhuzamos világba léptem volna, nem látom a változók előzőleg átküldött értékét
-
domel
tag
Hi! Ha van egy CardView és azon egy Button, annak a RecyclerViewAdapter-ben lesz az onClickListener-je, de én azt szeretném hogy ez az onClickListener a MainActivity-ben fusson le, azt ti hogyan oldjátok meg? Én közbeiktattam egy Interface-t és azzal átlövöm a MainActivity-be, de tuti hogy ennek nem ez a módja... Ti hogyan csináljátok?
Üdv: Domel
-
domel
tag
Sziasztok! Lenne pár kérdésem működési elvvel kapcsolatban
Szeretnék egy programmal kb 3-5 másodperces reagálási szinten tartani a kapcsolatot napi kb 1 megabájtból. Ha kérdezgetem a szervert (http get), akkor az lekérdezésenként 1-2 kilobájt akkor is ha csak 1 byte jön, ami napi szinten nagyon sok. Milyen megoldások vannak erre?
Ha beállítok a programnak egy portot amit figyelserverSocket = new ServerSocket(8080);
az működik, de csak vonalas interneten, de ha mobil internet kapcsolaton van, akkor nem érkezik meg az üzenet. Blokkolja a Vodafon?? (skype működik) A mobilinternet amúgy is érdekes, van hogy menet közben megváltozik az ip cím, az ilyen mi az ip címem oldalak mind más ip-t írnak.
A Facebook Messenger pl milyen elven működik?
Google Cloud vagy hasonlóval volt már dolga valakinek?
Lényegében egy chat-re lenne szükségem, ami tartózkodási koordinátákat küld, ha a másik user ezt kéri, és persze csevegés sem lenne rossz.Mit tudtok ajánlani?
Üdv: Domel -
domel
tag
Írtam egy buszos programot ami lekérdezi a telefon gps koordinátáit és megnézi hogy az adott megállóba mikor jön busz. Az összes haveromnál működik, kivéve egy, akinél "várakozás a GPS-re" felirat marad a végtelenségig. Ráadásul pont ezt a gyereket nem ismerem személyesen, és 100 kilométerre lakik tőlem, úgyhogy marad a kérdezgetés hogy bekapcsolta-e a GPS-t, milyen rendszer fut a telefonján, látja-e a GPS ikont az értesítési sávban, de a jelek szerint semmi különös nincs vele, Lollipop mint az enyém, GPS bekapcsolva, így ötletem sincs.
Valami tippje nincs valakinek, hogy mit nézzek még meg, vagy milyen módszerrel lehetne rájönni a hibára?Üdv!
Domel -
domel
tag
válasz
gyurkikrisz
#4216
üzenetére
Én is hasonlóba futottam bele egy ébresztőórával kapcsolatban, nálam 5-7 perc is eltellik az ébresztési időpont után mire felébred. Már próbálkoztam az energiasémák állítgatásával is, de nem segített. Át kéne tervezni az egész programot, hogy öt perccel előbb térjen magához, és onnantól tíz másodperces intervallumokban várja ki az öt percet, de már ahhoz sincs kedvem.
-
domel
tag
Hi! Írtam egy internetrádiós programot saját részre csupa 32K rádiókkal, kiszámoltam hogy óránként 27-40 MB-ot fog fogyasztani, és mivel a MediaPlayernek kell 30 mp, mire megbírkózik egy ilyen alacsony bitrátás rádióval, ezért AACPlayer-t használtam hozzá. A legnagyobb döbbenetemre egy délelőtt alatt leszívta az 1 giga internetemet. Okulásként írom hogy vigyázzatok vele.
Más. Három napja szórakozok az OpenGl-el, egy része elég jól szembe megy az általános programozói logikával de azért egy texturával bevont kockát sikerült megforgatni, majd az about oldalakon jól fog mutatni. Van itt olyan aki nem csak hülyeségre használja?

-Domel
-
domel
tag
Hi!
Kaptam egy emailt a Google Play Developertől, hogy az alkalmazásom jelenleg sérti a felhasználói adatokat és személyes bizalmas információkat, vagy mi a fenéket, és Március 15-ig ha nem javítom, akkor törlik az applikációt. Gyenge angol tudásommal valami olyasmiről írnak, hogy az alkalmazás érzékeny felhasználói vagy készülék adatokat kezel, és ehhez érvényes adatvédelmi irányelvek kellenek. Ez most mit jelent?
Szerintem a z "android.permission.RECORD_AUDIO" /> akadhatott fent a rendszeren, amit zajszint mérésre használok egy internetrádiós ébresztőórában, de most kinek vagy hol magyarázzam el, hogy nem veszek fel beszélgetést???Mi a teendő? Valaki már futott bele hasonló problémába?
eredeti:
Our records show that your app, Domel Alarm, with package name com.project.domel.radio_alarm, currently violates our User Data policy regarding Personal and Sensitive Information.Policy issue: Google Play requires developers to provide a valid privacy policy when the app requests or handles sensitive user or device information. Your app requests sensitive permissions (e.g. camera, microphone, accounts, contacts, or phone) or user data, but does not include a valid privacy policy.
Action required: Include a link to a valid privacy policy on your app's Store Listing page and within your app. You can find more information in our help center.
Alternatively, you may opt-out of this requirement by removing any requests for sensitive permissions or user data.
If you have additional apps in your catalog, please make sure they are compliant with our Prominent Disclosure requirements.
Please resolve this issue by March 15, 2017, or administrative action will be taken to limit the visibility of your app, up to and including removal from the Play Store. Thanks for helping us provide a clear and transparent experience for Google Play users.
-
domel
tag
Hogyan lehet applikációt frissíteni a Play Áruházban?
Múlt héten feltöltöttem életem első applikációját a Play áruházba, ami nem ment simán, mert csak a "generate signed APK" menüből fordított APK-t fogadott el, és ott rögtön három jelszót megerősítéssel is meg kellett adnom (az egyik valami kulcs volt), azóta is azon gondolkozok, hogy azok mire is voltak jók. Később a developer konzolon valami olyasmit írt, hogy frissítéskor verziószámot kell növelnem (vagy ő növeli?), úgyhogy teljes a káosz a fejemben. A három jelszót felírtam szerencsére, úgyhogy ha lenne valaki önkéntes aki pár mondatban elmagyarázná a frissítés lényegét, annak nagyon szépen megköszönném!
Üdvözlettel: Domel -
domel
tag
válasz
gyurkikrisz
#4126
üzenetére
Most már csak azt szeretném megtudni, hogy a default videók mappát hogyan érhetem el, hogyan menthetek oda saját videót.
LOLLIPOP óta eszméletlenül megkavarták a dolgokat, alapból az emulált sd kártya jön be, amit nem találok fizikailag, és a videók app sem találja a videóimat, pedig valahol ott vannak. Most az új rendszeben végig kell fésülni az sd kártyákat, az első az emulált, a második a fizikai sd kártya, de fél napom ráment, mert minden példa még a régi rendszerről szólt. Az új rendszerben az sd kártyán is minden app csak a saját mappájához fér hozzá (alapból), és hiába megyek be a videók alkalmazásba (vagy mi az, mappa?) nem találja a videómat, amit total commanderrel meg látok...Szóval most már nem érdekel, hogy emulált vagy fizikai, csak szeretnék egy videót úgy lementeni, hogy utána a videók mappában meg tudjam nézni
Üdv: Domel
-
domel
tag
Hi! Hogyan lehet SD kártyára videót menteni? vagy akár könyvtárat létrehozni?
recorder.setOutputFile(getExternalStorageDirectory()+"/felvetel.mp4");Az Environment.getExternalStorageDirectory() értéke
"/storage/emulated/0" lesz, de miért??? Próbáltam a permissiont manifestben és programból is megkérni, de a hiba ugyanúgy fennáll. Az emulált mappa sem érdekelne ha megtalálnám valahol a videómat...Üdv: Domel
-
domel
tag
Üdv! Működik KitKat-en a textView onClick esemény? Emulátorban nem megy...
Az nálatok hogy megy, hogy egy alkalmazás akkor is fut service módban, ha teljesen kilépek, mert én be tudom állítani ezt a "védett alkalmazások" menüben, de egy kolléga telefonján néztem, hogy neki meg nincs semmi ilyen, mintha ez a Huawei specialítása lenne..
Itt van egy ébresztő programom, szeretném ha valaki kipróbálná, és megkritizálná
[ebreszto3.apk]
Működik-e KitKat-en is, rá lehet-e jönni a működésére, ha nincs hozzá leírás (???)
(Lollipop, Marshmallow)
Üdv! -Domel -
domel
tag
ennyi erővel a Thread-ból is indíthatok egy UI szálat, hogy kiírjam a TextView tartalmát
new Thread(m);
. . . . . .
public Runnable m = new Runnable() {
@Override
public void run() {
adat= "ez itt string";
runOnUiThread(new Runnable() {
@Override
public void run() {
textview.setText(adat);
}
});
}
}; -
domel
tag
Nem kell megijedni, a fenti kód egy agyon-kibelezett valami volt, célom nem volt vele azon kívül, hogy próbáltam megérteni a Thread-ek életciklusát, illetve a Runnable-k életciklusát. Ez utóbbiak érdekesebbek számomra, mert amíg egy-egy új Thread-nek mindig újabb Thread ID-je lesz, addig a Runnable-nek maximum egyszer lesz új Thread ID-je (ha egy Thread indította el), különben 1-es lesz, már azután is, hogy egy PostDelayed újra időzítette. Tehát értelme így valóban nincs sok a Thread-eknek, de arra jó volt, hogy a jövőben ne csináljak felesleges vagy értelmetlen kódokat.
Más.
Használ valaki FFmpegMediaPlayer-t? Letöltöttem, jó is mert a stream rádiókat 3-4 másodperc alatt betölti a 30-45 másodperc helyett (32K-s rádióknál előforduló hiba), de megállításkor, újraindításkor elszáll a program.. A fórumok is tele vannak vele, valószínűleg elavult, a hozzá kapott demó (apk) is elszáll.
Van még valami alternatíva a MediaPlayer kiváltására???
Üdv: Domel
-
domel
tag
Azt szerettem volna valahogy megoldani, hogy ne induljon el párhuzamosan több runnable, ha többször nyomok a buttonra, de azóta rájöttem, hogy ha a runnable-t egy handler.removecallback-el kezdem, akkor nem lesz párhuzam.
Amúgy a Thread ID-jét nézve felesleges a külön szálból hívás, mert a runnable-nak úgyis új Thread id-je lesz, sőt ha a Thread run() ba teszek ciklust (postDelayed) akkor a második hívástól megszűnik a külön szál ID-je, de amúgyis kusza a helyzet, mert egy új Thread-ben nem lehet mondjuk egy TextView tartalmát megváltoztatni.. -
domel
tag
Üdv! Meg tudja mondani valaki, hogy a Button lenyomására miért indul 2 Runnable párhuzamosan?
final Handler handler = new Handler();
Thread rth;
Runnable r;
TextView TestView1,TestView2;
int szamol=0;
Runnable m = new Runnable() {
@Override
public void run() {
//st.sleep(1000);
TestView1.setText("fafa"+Integer.toString(szamol));
szamol=szamol+1;
r = this;
handler.postDelayed(r, 1000);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//---------------------
TestView1 = (TextView)findViewById(R.id.GStatusz);
TestView2 = (TextView)findViewById(R.id.GTajszint);
rth = new Thread(){
@Override
public void run() {
m.run();
}
};
rth.start();
}
public void test(View view) { //Button
handler.postDelayed(r, 1000);
}direkt azért tárolom el az r-ben a már futó Runnable-t, hogy ez ne történjen meg

Üdv: Domel
Új hozzászólás Aktív témák
- Amazfit T-Rex 3 Pro – világítós dínó
- Amazon Fire TV stick/box
- exHWSW - Értünk mindenhez IS
- AMD Navi Radeon™ RX 9xxx sorozat
- Bemutatkozott a Poco X7 és X7 Pro
- Konteó topic
- Amlogic S905, S912 processzoros készülékek
- Témázgatunk, témázgatunk!? ... avagy mutasd az Android homescreened!
- Vezetékes FEJhallgatók
- Samsung Galaxy S25 - végre van kicsi!
- További aktív témák...
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 Max 36GB RAM 1TB SSD macbook garanciával hibátlan működéssel
- ÁRGARANCIA! Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 5050 8GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 12 64GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3858
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


Nekem Huawei P8 van, azon meg nem működik


