Hey dafür must du den "NotificationCompat.Builder" benutzen, wie er auf der Seite von dir beschrieben wird.
https://developer.android.com/…auto/messaging/index.html
Beiträge von nono124
-
-
Normalerweise macht das dein Handy ständig im Hindergrund und sucht den stärksten.
Du sollst die verbindung nur beim start der app trennen damit dein Handy sich so vieleicht etwas schleller verbindet. Und wenn das Mobile Internet aus ist versucht es immer eine Wlan verbindung herzustellen wenn Wlan an ist.wie stark ist denn überhaupt der Empfang wenn du for dem Tor stehst? oder noch im Auto sitzt.
Ich versuche dir nur zu hälfen und vielleicht ein paar wege zu geben die du tessten köntest um dein ziel zu erreichen. -
Hallo, bist du mit dem Thema schon weiter gekommen?
Was mir auffält ist du prüft die SSID ob es deine Home SSID ist aber in dem fall das es sie nicht ist würde ich die Verbindung trennen.
Auch könnte ein gennerelles Verbindungs trennen am Anfang hälfen ich würde auch die Mobiele Verbindung trennen damit sich das Handy über WLan verbinden muss.
So wie ich es aus der Developer Seite lese wird bei Reconnect nur die vorhandene verbindung nochmal neu verbunden, und nicht unbedingt ein anderer Accesspoint gewält. https://developer.android.com/…net/wifi/WifiManager.htmlWie ist dein Rolltor mit dem Lan verbunden über Kabel oder Wlan ?
Bei Wlan hilft vieiecht "tdls" weiter. meine einen DirectConnect ohne Access Point .Versuche es mal mit:
boolean removeNetwork (int netId)
Remove the specified network from the list of configured networks. This may result in the asynchronous delivery of state change events. Applications are not allowed to remove networks created by other applications.
int: the ID of the network as returned by addNetwork(WifiConfiguration) or getConfiguredNetworks().
Dafür musst du dir ID deines Home Netzes z.B. in einer Perferences mekken die du mit getConfiguredNetworks() holen kanst venn du im Homnetz verbunden bist. -
Hey zur Umkreis Suche könntest du die PLZ mit speichern und nach dieser suchen. Oder du speicherst die Entfernung zu einen festen Punkt mit in der Datenbank. Dann kannst du durch Berechnungen in der Datenbank einschränken.
Zur Google API kann ich dir nicht viel sagen. -
Ich selbst bin auch nur Hobby Programmierer habe in der Richtung auch keine Schule oder lehgang gemacht.
Komme über etwas Basic Z80 , Pc Assembler C , C++ , zu Java auf Android.
Visual Basic ist auch Objektorientiert nur ist da die Gui anders und es giebt das Prinzip der Listner glaube ich nicht. Das dir etwas schwer fällt . Solte nur ein Rat sein.Ps. Wenn man ein Problem löst und dabei den Zusammenhang versteht lernt man am meisten meine ich.
-
ist ja in etwa das was ich erklärt habe. Du braucst eine Intanz. Nur für jede Seekbar eine andere.
Habe auch nicht gemeit das du faul bist. -
Zu dieser Zeile " Ich will nun nicht ein Array sondern nur einen Integer Wert von der MainClass auf die Amicus Setup Class übertragen."
Du willst nicht die werte übertragen sondern, du willst auf die Variablen in der Kalsse zugreifen das ist ein unterschied.
Ein zugriff wird Über eine Objekt Variable die eine Instanz der Klasse gespeichert hat gemacht. Die hast du aber nicht hast.
in derZeile "mySeek.setOnSeekBarChangeListener(new AmicusSetup(this));" wird zwar eine Instanz erzeugt und sofort an die seekbar Übergeben nur du hast sie nicht. wie gesagt wenn du die braucht weil du getter und setten benutzen möchtest must du die vorher eine Variable von der erstellen und diese der Seekbar mit geben.Schaue dir das Prinzip der Objektorientierten Programmierung noch mal an das scheinst du noch nicht richtig verstanden zu haben.
-
Hey,
warum erstellst du eine Instaz von der Klasse "AmicusSetup myS = new AmicusSetup(this);" in der MainActivity?
Das ist eigentlich sinnlos. Wenn du damit meinst auf die Variablen den Litner zu zugreifen irrst du dich. Die klasse ist nur als Litner gedacht und mehr nicht . Wenn du Variablen in der Klasse setzen willst Must du die dem Kostucktor bei der Instanz ezeugung also beim erstellen des Objektes mitgeben. Natürlich den Konstuktor in der Klasse anpassen. Die Instanz "myS" ist nicht die gleiche die als Listner benutz wird. Jede erstellt Instanz hat ihern eigenen Speicherbereich. Mit der Zeile " mySeek.setOnSeekBarChangeListener(new AmicusSetup(this));" erstellst du auch eine Instanz von der Klasse die auch in einer Variablen gespeichert wird die du nur nicht siehst. Die sind nicht gleich somit auch nicht der Speicherberich.Auch das du wieder eine neue Liste in der Lisner Klasse erstellt ist fallsch . Du hast doch eine Statische Liste in der Main Klasse . die kannst du im gesamten Projekt benutzen und brauchst keine neue . Auch die int variablen werden immer wieder neu erstellt .
Der Vorteil einer staischen Variable ist das du keine Instanz benötigst.Int Variablen brauchen kein "new" denn es sind primitive Variablen es wird aber immer beim Deffiniren dieser ein neuer Speicherbereich zugeordnet. Und bei jedem neu Deffinieren ein neuer Bereich.
Klassen sind Objekte und die müssen mit dem Operator "new" erstellt werden.
Wenn du die Flag und Color Variablen brauchst must du die im Konstrucktor Übergeben und dort in Globale Variablen Speichern.
Soll das Dynamisch sein würde ich auch ein feld oder liste dafür nehmen und die wieder static machen.Wenn du unbedingt zwischendurch auf die Instanz der Listnerklasse zugreifen willst dann must du das in der Main in etwa so machen.
AmicusSetup listner1 = new AmicusSetup(this);
mySeek.setOnSeekBarChangeListener(listner1);
Über listner1 hast du zugriff auf den Klicklistner.
Natürlich für jede Seekbar eine Andere Variable .Java
Alles anzeigenpublic class AmicusSetup implements SeekBar.OnSeekBarChangeListener { // class ArrayListBackSpinTop implements SeekBar.OnSeekBarChangeListener public int flagx,flagy; public int int_ProgressCount; public int colorGreen; public int colorRed; private Context context; // Context ist wichtig, damit get Resources bei "Icon" funktioniert. // muss noch herausfinden was das überhaupt bedeutet AmicusSetup(Context context) { this.context = context; } AmicusSetup(int colorGreen, int colorRed ,Context context) { this.colorGreen = colorGreen; this.colorRed = colorRed; this.context = context; } public void setColorGreen(int color){ this.colorGreen = color; } public void setColorRed( int color){ this.colorRed = color; } public int getColorGreen(){ return this.colorGreen; } public int getColorRed(){ return this.colorRed; } public static void showToast(Context mContext,String message) { Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show(); } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // int progressChangedValue = 0; // progressChangedValue = progress; int_ProgressCount= progress; Log.d("TAG", "Some logging"); // Toast.makeText(getApplicationContext(), "int ProgressCount " + int_ProgressCount, Toast.LENGTH_SHORT).show(); } @Override public void onStartTrackingTouch(SeekBar seekBar) { // Toast.makeText(getApplicationContext(), "OnStart", Toast.LENGTH_SHORT).show(); } @Override public void onStopTrackingTouch(SeekBar seekBar) { // x=x+y; MainActivity.ArrayListForAmicus.get(0).setPadding(13, 0, 13, 0); //Toast.makeText(getApplicationContext(), "klikListe.get(flag) " + klikListe.get(flag), Toast.LENGTH_SHORT).show(); Drawable icon; switch (int_ProgressCount) { case 4: //icon = ResourcesCompat.getDrawable(getResources(), R.drawable.led_green_10x22, null); // icon = ResourcesCompat.getDrawable(context.getResources(), R.drawable.led_green_10x22, null); icon = ResourcesCompat.getDrawable(context.getResources(),this.colorGreen,null); MainActivity.ArrayListForAmicus.get(0).setThumb(icon); break; default: icon = ResourcesCompat.getDrawable(context.getResources(), R.drawable.led_red_10x22, null); MainActivity.ArrayListForAmicus.get(0).setThumb(icon); // Toast.makeText(getApplicationContext(), "flag " + flag, Toast.LENGTH_SHORT).show(); break; } } } /* // aufruf aus der Main ohne das du die getter und setter benutzen kanst mySeek.setOnSeekBarChangeListener(new AmicusSetup(this)); oder mySeek.setOnSeekBarChangeListener(new AmicusSetup(gren,red,this)); */ /* // aufruf aus der Main mit benutzung der getter und setter AmicusSetup listner1 = new AmicusSetup(this); mySeek.setOnSeekBarChangeListener(listner1); listner1.setColorGreen(....); */
Tipp : Variablen fangen mit kleinen Buchstaben an.
-
Ok sehe gerade das du eine Fallunterscheidung im der Zeile 54 machst. Nur wie schon gesagt wird immer wieder eine neue Liste in der instanz der Klasse erstellt. Du must die Liste auserhalb der Klasse erstellen.
-
Hey, ich kann dir nicht ganz volgen.
Was meisnst du mit "Ich wollte nun einfach nur erreichen, das ich mit File/New Class genau den Inhalt dieser Class in eine neue File/new Class kopiere/verschiebe ..." .
Wo machst Du das?
Wo wie und warum willst du eine neue Klasse übergeben verstehe ich nicht.Bei dem Beispiel mit der inneren Klasse deffinirst du die ArryListe Global im KlassenRumpf der MainActivity somit ist sie auch von der inneren Klasse erreichbar.
Glaube du hast da einen Denkfehler.
In dem alten Beispiel ist es so gewesen das du mehrere Seekbars hast, und nicht für jede einen Klicklistner schreiben wolltest. Deshalb die innere Klasse. Bei der Zeile 74 " seekbar1BackSpinTop.setOnSeekBarChangeListener(new ArrayListBackSpinTop(0));"
wird eine neue Instanz der Klasse erstellt. Jedesmal wenn du eine andere Seekbar die Klasse mit new übergiebst wird wieder eine neue Instanz erstellt. Die eine weis von der anderen nichts. Deshalb Übergeb ich den Int wert x um in der Klasse die seekbars auseinander zu halten. Ich habe dir auch geschrieben das du dich um die Fallunterscheidung noch kümmern must. z.B. mit Switch
Case .Hoffe es ist jetzt etwas Klarer.
Das ist halt Objektorientierte Programmierung.Ps. wenn du die ArryListe in deiner Klicklistner Klasse brauchst dann erstelle sie "public static " in der MainAtivity und in der Listner Klasse greifst du mit "MainActivity.ALBackSpinTop" darauf zu.
-
Warten wir mal was K50tEwok89 dazu sagt. Kann sein das die imei auf dem Deckel steht. Ich selbst habe noch eines wo ich den Aku tauschen kann. Er hat es gebraucht gekauft und da wider wohl der Kleber mit der Nummer entfernt wurden sein. Oder ist die Nummer fest im Deckel ein gepregt. Aber auch den kann man ersetzen denke ich.
Andy du müsstest doch deine imei doch noch haben könntest doch mal probieren die wieder herzustellen. -
Jedesmal wenn du auf die Seekbat klicks und somit die Klasse des klicklitner aufrufst wird auch eine neue Arryliste erstellt.
Die dann natürlich lehr ist. Die Liste soltest du nicht im Listner erstellen. oder Ihn übergeben. -
Hallo Andy61, was hat den das S5 damals mit dem *#06# angezeigt. Bei dem S5 konnte man noch den Aku rausnehmen und unter dem Stand immer die IMEI + SN.
OK habe es naschgeschlagen IMEI Nummer läst sich mit Tricks ändern, habe ich noch nie gemacht wozu auch ich bin kein Kimineller der das braucht.K50tEwok89, ist bei dem Handy gar keine IMEI eingetragen. Öffnen kanst du es wohl nicht, der Aku ist wohl fest verbaut.
Wenn die IMEI verändert wurde könnte es ein geklautes Handy sein da wird die Nummer meistens verändert da es über diese geortet werden kann. Du sagtest das du es gebraucht gekauft hast ,da könte das schon sein.Auch bei einen Handy was man nicht öffnen kann ist meisten innen auf der Platiene ein Kläber mit der IMAI und SN.
Lass doch mal von einenen Fachman öffnen.Kannst du das Haundy im moment benutzen ?
vielleicht hilft das weiter
https://drfone.wondershare.com…/change-imei-android.html
https://websetnet.com/de/chang…device-id-android-device/ -
Hallo gieb über die Telepfontastarur den Code *#06# ein. Dann solte die die IMEI angezeigt werden.
Die IMEI kannst du nicht ändern ist fest im Handy drin. -
Zum ersten Punkt ich meinte Klassen fangenen eigentlich mit einen Großen Buchtaben an.
Wenn du auf die auf die Nachricht klickst wird ein Service gestartet. So wie du es in deinem intent auch willst. Nur das ein Service nicht auf dem ui thread heißt auf Benutzeroberfläche läuft. Und du somit keine Ausgaben machen kannst. Dafür benutz man handler der auf der Benutzeroberfläche läuft. Oder eine callback Methode die in deiner acktivity läuft somit auch auf dem ui thread. Und wenn du vorher ich meine vor der Version mit dem Toast eine Ausgabe in eine View gemacht hast ist es kein Wunder das du dabei einen nullpointer bekommen hast dem im Service ist kein layout geladen.
Aber wenn du deine activity starten willst wie so startest du dann den Service. Normalerweise startet man die aktivity .Dafür ändere einfach den intent
"Intent notintent = new Intent(this, updateweb.class);." in dem du hier die classe deiner activity angiebst.
Hoffe es ist jetzt etwas besser verständlich.
-
Bei Aktivieren des Displays dann würde das Handy es immer machen. Auch wenn du mit Sicherheit nicht in Reichweite bist weiß nicht ob das so schön ist.
Dazu müsstest du aber einen System Service benutzen also so was wie den Logg Screen. -
ok so gross ist die Datenbank da nun auch nicht. Da du ja schon die Hälfte hast Datenbank, und auch die schon mit PHP abfragst ,kannst du ja genau die Daten die zur Anzeige der Webseite benutzt in ein Jason parsen. Und in der app anzeigen. Json wird in PHP und Android gut unterstützt. Viel Erfolg.
-
Ja kann sein. Schön wäre wenn ein etwa konkreterer Entwurf vorliegen würde da könnte man auch mal was anfangen. So hat das gar keinen Sinn.
-
Wie du das Handy dazu bringst sich schneller mit dem WLAN zu verbinden kann hier dir nicht sagen. Versuche in den Handy Einstellungen was zu finden. Für manche händisch giebt es Codes wo du auf erweiterte Einstellungen kommst. Weiß ich jetzt nicht auswendig.
Eentweder wie gesagt einen stärkeren Router damit die Reichweite größer wird und somit auch das Signal stärker wird dann loggt sich das Handy auch früher ein.
Oder du erstellst sowas wie ei e VPN Verbindung zu deim Router und kannst somit vom modilen Internet auf deinen Router zugreifen. Mehr Tips kann ich dir leider nicht geben.
PS. Schalte mal das WLAN aus und erst wenn du in Reichweite bist wieder ein vielleicht verbindet es sich dann schneller oder du bringst deinen Router dazu das er sein Hallo Telegramm öfters schickt geht natürlich zu Lasten der netzlast. Außerdem wie viele gespeicherte wlan hast du in deinem Handy. Das handy versucht immer fast alle durch wenn es kein Signal hat. -
ok du schreibst Klassen klein.
Der Fehler passt auch zu dem errortext. Denn in einem Servicre bist du nicht im ui thead. Benutze einen Händler oder eine callback Methode um auf die ui deiner Activity zu kommen.