Új hozzászólás Aktív témák
-
domel
tag
Helló! Írtam egy programot androidban, ez az első programom, azt csinálja hogy figyel egy text fájlot egy FTP szerveren, és ha változik a tartalma, akkor lejátszik a telefon egy pár másodperces hangot. (a text fájlot egy PHP hozza létre, amit a riasztó mozgásérzékelője hív meg)
Szóval én soha nem írtam még programot androidban, az android kódot Delphi hozza létre, ugyebár a Delphi-hez meg nem kell sok ész, csak beállítottam hogy a kimenet android legyen, és ha azt állítom be hogy IOS, akkor meg ugyanez, függetlenül attól hogy gőzöm nincs az IOS-ról.
A program működik is szépen amíg meg nem unja. Hiába állítottam be a telefonon a védett alkalmazásokban, egy ideig működik, aztán nem. Ha töltőn van a telefon akkor 8-10 órákat elmegy simán, de ha nincs akkor 10 perctől fél órán belül leáll a program működése, és ha bekapcsolom a telefont, akkor újra működik. Van olyan hogy bekapcsolom a telefont, a program sehol, majd mikor elindítom, akkorteljesen újraindul, de olyan is, hogy visszatér a megnyitott program.
Kérdésem: Akkor most meddig fut egy applikáció? Mi történik vele ha kikapcsolom a telefont (alvó módba)?
Csináltam olyant is, hogy deaktivításkor lejátszon egy hangot, de úgy tűnik sose deaktiválódik a program. Lejátszik egy másik hangot ha kilépek, de ez csak akkor fut le, ha a visszanyíllal kilépek a programból, ha az app választóból lövöm ki a programot, akkor még ez sem fut le.
Feltettem az Android Studiót is, de Delphi után túl bonyolult, lehet hogy mégis csak ezzel kéne kezdeni valamit? Olyan oldalt tudnátok ajánlani (de majd vissza is olvasok) ahol komplett programok vannak, ezek Android Studióba betölthetők, és tudnám belezgetni őket??
Köszi a segítséget!
Domel -
domel
tag
válasz WonderCSabo #3822 üzenetére
valóban az energiakezelés módot kellett intelligensről teljesítményre állítani, és akkor nem zárja be egy idő után. köcce!
-
domel
tag
válasz SirRasor #3829 üzenetére
Ha Delphihez értessz, akkor semmi gond, a Delphi már egy ideje fordít be Androidra is programokat.
Szóval a kimenetet átállítod Androidra, kiteszel két buttont és egy Timer komponenst (ez eddig 5-10 másodperc) és leprogramozod azt tíz perc alatt, amivel az Android Studioban egy fél napig szarakodnál.Delphi telepítését addig el se kezdd, amíg a Java legújabb verzióját fel nem teszed, mert nem fogod tudni, hogy mitől nem fordít a Delphi, viszont utána készen kapod azokat a dolgokat amiket az Android Studióban hónapokig kéne tanulni.
-
domel
tag
válasz SirRasor #3851 üzenetére
Üdv Sir Rasor! (kiejteni Szőr Razor (??))
Néztem a tákolmányodat, a problémáddal nem foglalkoztam mert én is ugyanolyan kezdő vagyok mint te, de a Service-d nem egy stabil valami... Még usb kábel végén a telefonnal az oké, de ahogy lehúzom a kábelről, egy darabig megy, aztán egyre kevésbé, hiába hívod meg ezt másodpercenként
private Runnable runnable = new Runnable() {
@Override
public void run() {
food-=1;
handler.postDelayed(this, 1000);
}
};
egy fél percig megy, aztán egyre kevésbé, a végén már majdnem 2 perc is eltellik mire lefut a procedura.
Nekem pont most sikerült stabil Service-t csinálni, 5 másodpercenként lejátszik egy hangot, a kikapcsolt telefonnál is megy már fél órája, nem lassítja be az android, és bezárható (a task menüből is) a program, akkor is tovább fut. Most értem el ahhoz a részhez amivel te is szenvedsz, hogy újrainduló programmal is el kéne érnem a Service-t anélkül hogy fagyna, vagy újraindulna. Ha gondolod, -vak vezeti világtalant- segíthetünk egymásnak.Domel
-
domel
tag
Üdv! Szeretnék egy text fájlot letölteni az internetről egy string típusú változóba, minden fórumon ezt ajánlják:
public void fafa(View view) {
try {
// Create a URL for the desired page
URL url = new URL("http://www.spessart.hu/counter.txt");
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null)
{
// str is one line of text; readLine() strips the newline character(s)
}
in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
}de nekem hibaüzenet nélkül elszáll tőle a program (a telefonon).
Mi lehet a hiba? Van esetleg valakinek működő kódja? Megköszönném!
Üdv: Domel
-
domel
tag
Igazatok volt a text fájl internetes letöltésében, UI szálon esélytelen, találtam is működő példát, az valahogy async eljárásban tölt le az internetről. Az alábbi kóddal szenvedtem pár órát, egy Delphi-ben ismeretlen problémám volt, mutatom:
(van egy weboldalon egy counter.txt fájl, amiben a számot egy mozgásérzékelő növel ha változás van, akkor lejátszik egy másodperces hangot a telefon)package com.example.csabi.gondolok;
import android.media.MediaPlayer;
import android.os.AsyncTask;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
String textResult;
String egyik;
String masik;
MediaPlayer mySound;
private Handler handler = new Handler();
Random rand = new Random();
public Runnable r = new Runnable() {
@Override
public void run() {
TextView mtextview = (TextView) findViewById(R.id.mTextView);
mtextview.setText(egyik+"---"+masik);
if (egyik != masik){
mySound.start();
masik = egyik;
}
new MyTask().execute();
handler.postDelayed(this,5000);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mySound = MediaPlayer.create(this,R.raw.sound3);
Thread lessThread = new Thread(r);
lessThread.start();
}
public void frissit(View view) {
}
public void fressit(View view) {
}
private class MyTask extends AsyncTask<Void, Void, Void> {
//String textResult;
@Override
protected Void doInBackground(Void... params) {
URL textUrl;
try {
int n = rand.nextInt(9000);
textUrl = new URL("http://www.spessart.hu/counter.txt?a="+Integer.toString(n));
BufferedReader bufferReader
= new BufferedReader(new InputStreamReader(textUrl.openStream()));
String StringBuffer;
String stringText = "";
while ((StringBuffer = bufferReader.readLine()) != null) {
stringText += StringBuffer;
}
bufferReader.close();
textResult = stringText;
} catch (MalformedURLException e) {
e.printStackTrace();
textResult = "*";//e.toString();
} catch (IOException e) {
e.printStackTrace();
textResult = "*";//e.toString();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
egyik = textResult;
int gz = Integer.parseInt(egyik);
egyik = Integer.toString(gz);
}
}
}Itt a végén
egyik = textResult;
int gz = Integer.parseInt(egyik);
egyik = Integer.toString(gz);
ha az "egyik = textResult" csak úgy simán, akkor öt másodpercenként pittyeg, hiába látom hogy például
42---42 akkor is lefut az alábbi kód
if (egyik != masik){
mySound.start();
masik = egyik;
}
Ez mitől van? A string tartalmazza a memóriacímet is??? Vagy bug?Üdv: Domel
-
domel
tag
Igazad lehet abban hogy a két string mutatója kavar be, de szerintem ez néha számít, néha nem
String k1="vava";
String k2="zaza";
. . .
public void frissit(View view) {
k2="vava";
if (k1==k2) {
mySound.start();
}
}Elvileg ez sem lehetne egyenlő ha a string mutatója szerint nézzük, márpedig lejátsza a zenét.
-
domel
tag
Oké, String ügyben meggyőztetek!
Azt szeretném kérdezni, hogy Service-ben lehetséges egy text fájlot letölteni az internetről? Egy ideje szenvedek vele, úgy vettem észre hogy a Service gyengébb még az UI-nál is a terhelhetőséget illetőleg, még a bevállt
private class MyTask extends AsyncTask<Void, Void, Void> {
sem megy
Esetleg lenne egy vállalkozó szellemű köztetek, akit ha megfizetek, megír egy olyan programot, ami Service-ben fél percenként megvizsgál egy interneten lévő text fájlot, és ha változás van, lejátszik egy hangot. A program akkor is működne, ha a programot bezárom, pont úgy ahogy a facebook messenger vagy a Skype (tehát látszólag meg sincs nyitva semmi, mégis megy). Én meg utalok mondjuk a PayPal-en vagy simán bankon keresztül. Én meg az így kapott forráskódból tanulnák, mert egyedül sajnos nagyon nehezen megy.
Üdv: Domel
-
-
domel
tag
Üdv! Hogyan lehet kikapcsolt (és usb kábelről lehúzott) telefonon pontos időzítést csinálni?
Thread lessThread = new Thread(r);
lessThread.start();
. . .
public Runnable r = new Runnable() {
@Override
public void run() {
mySound4.start();
szamlalo = szamlalo + 1;
if (szamlalo == 60){
szamlalo = 0;
new Feldolgoz().execute();
}
handler.postDelayed(this, 1000);
}
};A mySound4.start() -ban egy tizedmásodperces néma hang szól, és ha az nincs ott, akkor minden lesz az, csak nem 60 másodperc (pár másodperc eltérés nem számítana), ha a postDelay-t 60000-re állítom, akkor még a mySound sem számít, 200-300%-os eltérések lesznek a meghívások között.
Próbáltam mással is,scheduledPool.scheduleWithFixedDelay(r, 1, 1, TimeUnit.SECONDS);
,de a probléma ugyanaz. Mivel lehet még időzíteni?
A telefonon már korábban "teljesítményre" állítottam az energiagazdálkodást, elvileg az nem lehet hiba, és bekapcsolt telefonnál sincs hiba az időzítéssel.Köcce! -Domel
-
domel
tag
Üdv!
Csináltam egy programot ami elindít egy Service-t, az meg figyel egy internetes text fájlot és csipog ha változás van. Mivel a MainActivity nem lényeg, a programot ki is lövöm(telefon alkalmazás-választó menüből), ekkor a Service újraindul és teszi a dolgát.(1 folyamat 1 szolgáltatásként) Ha a kódba beteszek egy sortpublic int onStartCommand(Intent intent, int flags, int startId) {
adatnull = intent.getStringExtra("adat0"); // <--- eztakkor valahogy megváltozik az APK szerkezete, és mikor kilövöm az app-ot, nem indul újra a Service. (0 folyamat 1 szolgáltatás lesz, majd egy másodperc múlva bezáródik a Service).
Kérdéseim:
-Futhat úgy Service, hogy 0 feladat 1 szolgáltatás?
-Ha kilövöm a programot, akkor miért indul újra a Service?
-Ha beteszem azt a bizonyos sort, akkor miért nem? Most akkor melyik a bug?Ha én szeretnék egy háttérben futó alkalmazást, amit az alkalmazás-választó menüből is kilőhetek úgy, hogy az továbbra is a háttérben működjön, akkor merre induljak el?
Üdv! -Domel
-
domel
tag
Hi! Nálatok milyen vas van az Android Studio alatt? Nálam eszméletlen lassú minden, a memória csurig (4GB), de a procik 1-8%-on, és ha átlépek az internet böngészőbe akkor meg az lassú, amíg össze nem szedi magát...
A fragmentek része az Android Studionak? Itt bróbálok tájékozódni a témában [link] de plugin telepítését kéri ami persze nem jön össze (2013-as a cikk) lehet hogy el is avult, vagy abban az időben még android studio sem volt.
Tud valaki olyan helyet ahol sok működő és letölthető demó van? Ez a GitHub olyan mintha egy óriási szemétdombon túrkálnák, minden tizedik letölthető app indul el valamilyen hiba nélkül, de néha még olyan kódokat is megosztanak amik nem csinálnak semmit, az időm viszont megy velük
Köcce!
Domel -
domel
tag
válasz bucsupeti #3891 üzenetére
Nekem 2012-es a gép, i5 2,7GHz mittudomén hány mag, a mai gépek sem tűnnek sokkal izmosabbnak. Android Studio alatt folyamatosan tölt és maxon a memória, már a vírusírtót is letiltottam. Megpróbálok venni ramot, aztán meglátom.
Linux alatt... az más, ott a nyers erővel dolgozik a gép, de nekem az nem jó mert windows-os programokat is irok.
-Domel
-
domel
tag
Úgy néz ki, hogy megoldotta a problémám a memória csere, a 4GB lett cserélve 16GB-ra. A feladatkezelőben látom hogy folyamatos 4,5 GB a memóriaszint, ezért lehetett hogy folyamatosan töltött ha egyik applikációból mentem egy másikba. A 16 GB kicsit túlzás volt, emulátorral is csak 6,5 GB, és annak is elfogadható lett a sebessége. Amúgy mondták a szerelők, hogy lassan töltött be a windows annak ellenére, hogy egy erős gép, úgyhogy valami bibi lehet még, majd még ennek utánajárok.
-Domel
-
domel
tag
Hi! Próbálom megérteni a Fragmentek működését, de már a tizenhetedik próbálkozásom fulladt kudarcba. (kezd a hócipőm telelenni az egésszel)
Most már ott tartok, hogy szerintem nálam nem stimmel valami, mert a youtube videón ami megy a gyereknek, az nálam nem.FragmentTransaction ftc = getSupportFragmentManager().beginTransaction();
BlankFragment fragmentDemo = BlankFragment.newInstance(5, "my title");
ftc.replace(R.id.tvFragText, fragmentDemo);
ftc.commit();Első sort teljes egészében aláhúzza pirossal, a harmadik sorban meg a "fragmentDemo"-t, pedig valószínűleg ennek működni kellene. (Valamit telepíteni kellene hozzá??)
Valaki tudna bemásolni egy teljesen minimál kódot, aminek 1000% hogy működni kell? Mert ha az sem működik, akkor hagyom az egészet. Annyit látok, hogy ez a fragment dolog már a többszöri verzióknál tart, lehet hogy amiket én próbálgatok, azok már elavultak?
-----------------------------
Ja és egy másik kérdés, mert egy Android Studio-t megfektettem vele: ha kiírja a compiler, hogy a letöltött példaprogram nem futtatható mert az én Gradle verzióm 2.10.1 de a minimum 2.14.1, akkor mit kell csinálni? Én letöltöttem a Gradle 3.0-t, aztán próbáltam bemásolni valami könyvtárba, meg a letöltés linkjét kicserélni valami Gradle fájlban (mindenfélét olvastam ezügyben), aztán egyszer csak nem működött többé az Android Studio, hiába csináltam vissza, uninstall/install kellett...Üdv: Domel
-
domel
tag
válasz bucsupeti #3903 üzenetére
Az sem mindegy?
MainActivity.javapackage com.example.csabi.rohadjmeg;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentTransaction valami;
FragmentTransaction ftc = getSupportFragmentManager().beginTransaction();
BlankFragment fragmentDemo = BlankFragment.newInstance(5, "my title");
ftc.replace(R.id.tvFragText, fragmentDemo);
ftc.commit();
}
}BlankFragment.java
package com.example.csabi.rohadjmeg;
import android.os.Bundle;
import android.support.v4.app.Fragment;
public class BlankFragment extends Fragment {
// Creates a new fragment given an int and title
// DemoFragment.newInstance(5, "Hello");
public static BlankFragment newInstance(int someInt, String someTitle) {
BlankFragment fragmentDemo = new BlankFragment();
Bundle args = new Bundle();
args.putInt("someInt", someInt);
args.putString("someTitle", someTitle);
fragmentDemo.setArguments(args);
return fragmentDemo;
}
}Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<fragment
android:name="com.example.csabi.rohadjmeg.BlankFragment"
android:id="@+id/fooFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Fragment_blank.xml<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="200dp"
android:layout_height="200dp" >
<TextView
android:id="@+id/tvFragText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="" />
</RelativeLayout> -
domel
tag
Hi! A Service-el kapcsolatban szeretnék kérdezni. Elvileg tudok hozzá csatlakozni a telefon egy másik applikációjából is? Mi kell hozzá? Package name, vagy ilyesmi? És ugyanez, egy másik telefonról hálózaton keresztül? Vagy windows-ról?
Találtam egy példaprogramot, az elindít egy Service-t, és azt nem lehet leállítani, mert újraindul, még akkor is, ha a futó appokban a folyamat leállítására kattintok, akkor is újraindul.
Ha a Service kapcsolódik valami webes dologhoz, pl Google szolgáltatásokhoz, akkor leáll a Service, ha kilépek a programból?Üdv! Domel
-
domel
tag
csak elméleti kérdéseket tettem fel, mivel az interneten minden angolul van a témában, nagy segítség tőletek hogy legalább tudjam mire keressek. A service-t hány féle képpen lehet elindítani? Olvastam valahol, hogy Daemon process az applikációtól független, de ez vagy kamu, vagy nem jött össze. A másik process és intent filter témában majd belinkelek egy érdekes kodrészt, az valószínűleg pont így csatlakozik saját magához (egy trükkel kilépéskor elindítja saját magát), majd megszakértjük
köszi az előző választ is!
Domel -
domel
tag
Üdv! Service icon-t (futó alkalmazások menüben) hogyan lehet megváltoztatni?
<service
android:name=".DoService"
android:icon="@mipmap/kc_launcher"
android:enabled="true"
android:exported="true"
android:process=":remote" />
ez nem működik, az Activity icon lesz a service ikon isKöcce! -Domel
-
domel
tag
Üdv! Mi lehet az oka annak, ha a notifikációs led nem működik?
NotificationManager nm = (NotificationManager) getSystemService( NOTIFICATION_SERVICE );
Notification notif = new Notification();
notif.ledARGB = Color.BLUE;
notif.flags = Notification.FLAG_SHOW_LIGHTS;
notif.ledOnMS = 1000;
notif.ledOffMS = 300;
nm.notify(1, notif);
Ilyen és hasonló kódokat próbáltam már végig vagy tízet. Azt írják, hogy permission nem kell hozzá. Néhány program használja, vagyis nem a telefon a hibás.Van valakinek működő kódja?
Üdv Domel -
domel
tag
Üdv Urak! Egy olyan gonddal küzdök, hogy: Van egy program ami percenként letölt az internetről pár bájtot, az AsyncTask-nak be van állítva 3 mp timeout
try {
new Feldolgoz().execute().get(3000, TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
//e.printStackTrace();
Log.i("hiba","timeout1");
} catch (ExecutionException e) {
//e.printStackTrace();
Log.i("hiba","timeout2");
} catch (TimeoutException e) {
//e.printStackTrace();
Log.i("hiba","timeout3");
mySound3.start();
}
Egy fél másodperces hiba-hangot játszik le, ha TimeOut van. Akár napokig is képes működni, a gond akkor kezdődik, ha két település között ingázok, ahol 2,5 km-en nincs, vagy alig van mobilnet, akkor percenként hallom a hiba-hangot, és mikor beérek a városba, az esetek többségében továbbra is hallom a hiba-hangot. A program újraindítása többnyire segít, de néha csak a telefon újraindítása.
Kérdésem: Mi történik az AsyncTask-kal, ha TimeOut lép fel? Gondolom félbe hagyja a letöltést anélkül, hogy lezárná azt, de a kocsiban ülve nem tudok logcat-et nézni...
Forráskód [html formátumban] itt.Előre is köszi a segítséget
Domel -
domel
tag
Helló! A Google Play fejlesztői módról érdeklődnék. Tehát kicsengetem a 25 dollárt, és akkor valahogy feltöltöm a programom...
Ha általános neve van az applikációmnak, akkor mennyire lesz elől vagy hátul a találati listában? Van esélyem több-ezer hasonló programmam szemben?
Ha változtatok a programon, akkor a userek-nek felajánlja a frissítést? Ha valaki letölti, arról értesítést kapok? stb, stb... Az alkalmazáson belüli vásárlások miatt gondolom, hogy a google play is tud bonyolult lenni, néha látom, hogy a programok service-ük kapcsolatban áll a google play szolgáltatásokkal, de én csak ingyenes programokban gondolkozok, remélem nem bonyolították túl...Üdv! Domel
-
domel
tag
Üdv! Azt szeretném kérdezni, hogy mi annak az eljárásnak a neve, mikor az ujjammal húzva activity-t váltok (vagy Layout-ot)? A viewFlipper-rel úgy tűnik zsákutcába mentem, az egy előre animált valami, de nekem olyan kell, ahol az ujjamat húzva akár félúton meg is állhatok
Üdv! Domel
-
domel
tag
válasz WonderCSabo #3972 üzenetére
Valóban ViewPager a neve.. Azt hogyan lehet megcsinálni, hogy gombnyomásra visszajöjjön mondjuk az első oldal?
Ezt egy Fragmentből hívom meg, de nem működikViewPager pager = (ViewPager) getActivity().findViewById(R.id.viewpager);
if(pager == null)
System.out.println("It's nill..."); // always getting a null value
else
pager.setCurrentItem(0);
pager.setCurrentItem(0,true);Üdv: Domel
-
domel
tag
Helló! Notification Icon készítéséről mit érdemes tudni? Az egyik csak egy szürke kockaként jelenik meg, a másik fekete lesz és alig látszik ki a háttérből, a harmadiknak nem lesz áttetsző a szélei, pedig annak kéne lenni, de olyan is van, hogy elszáll tőle az app.
drawable -> new>image asset -tel készítem, ott Notification Icon kijelöl, ekkor elvileg fehérnek kellene lenni az ikonnak (telefon-témafüggő) mert az összes ikon fehér, de az enyém fekete lesz, vagy a fentiek egyike.
Ti simán PNG képet raktok bele?Üdv: Domel
-
domel
tag
Üdv! Azt szeretném kérdezni, hogy a lenti kódban miért nem fut le az
onBufferingUpdate és az onError ??? (pedig látszólag mindenki így csinálja)package com.project.domel.ezmegaz3;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnBufferingUpdateListener;
import android.util.Log;
import android.view.View;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void kuku(View view) {
try {
Uri streamUri = Uri.parse("http://91.237.213.34:8002/"); /* stuck on prepare state */
mediaPlayer = new MediaPlayer();
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener(){
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.i("qq*","onerror");
return false;
}
});
mediaPlayer.setOnBufferingUpdateListener(new OnBufferingUpdateListener(){
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
Log.i("qq*", "onupdate");
mp.stop();
}
});
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener(){
@Override
public void onPrepared(MediaPlayer mp) {
if (!mp.isPlaying()) mp.start();
Log.i("qq*", "play");
}
});
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getBaseContext(), streamUri);
mediaPlayer.prepareAsync();
} catch (IOException e) {
e.printStackTrace();
}
Log.i("qq*", "lefut");
}
}Köcce:
-Domel -
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
-
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
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
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
Ü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
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
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
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
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
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
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
Í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
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
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
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
Új hozzászólás Aktív témák
- Helldivers 2 (PC, PS5)
- Milyen TV-t vegyek?
- Gördeszka topic
- Az NVIDIA szerint a partnereik prémium AI PC-ket kínálnak
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Xbox Series X|S
- Anglia - élmények, tapasztalatok
- Konzolokról KULTURÁLT módon
- BestBuy ruhás topik
- Milyen billentyűzetet vegyek?
- További aktív témák...