Android Studio GPS Hintergrund Service?

Hallo ich habe folgendes problem ich habe einService programmiert der nach der onLocationChange den neuen Standort als Toast ausgibt das funktoniert ja auch aber leider nur wenn die app offen ist ubwohl der service im hinterground immer noch leuft kann mir wer da helfen?

public class ortService extends Service {

    private LocationManager mLocationManager = null;
    private static final int LOCATION_INTERVAL = 1000;
    private static final float LOCATION_DISTANCE = 10f;

    private class LocationListener implements android.location.LocationListener {
        Location mLastLocation;

        public LocationListener(String provider) {
            Log.e(TAG, "LocationListener " + provider);
            mLastLocation = new Location(provider);
        }

        @Override
        public void onLocationChanged(Location location) {
            Log.e(TAG, "onLocationChanged: " + location);
            mLastLocation.set(location);
        }

        @Override
        public void onProviderDisabled(String provider) {
            Log.e(TAG, "onProviderDisabled: " + provider);
        }

        @Override
        public void onProviderEnabled(String provider) {
            Log.e(TAG, "onProviderEnabled: " + provider);
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            Log.e(TAG, "onStatusChanged: " + provider);
        }
    }

    LocationListener[] mLocationListeners = new LocationListener[]{
            new LocationListener(LocationManager.GPS_PROVIDER),
            new LocationListener(LocationManager.NETWORK_PROVIDER)
    };

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.e(TAG, "onStartCommand");
        super.onStartCommand(intent, flags, startId);
        return START_STICKY;
    }

    @Override
    public void onCreate() {
        Log.e(TAG, "onCreate");
        initializeLocationManager();
        try {
            mLocationManager.requestLocationUpdates(
                    LocationManager.NETWORK_PROVIDER, LOCATION_INTERVAL, LOCATION_DISTANCE,
                    mLocationListeners[1]);
        } catch (java.lang.SecurityException ex) {
            Log.i(TAG, "fail to request location update, ignore", ex);
        } catch (IllegalArgumentException ex) {
            Log.d(TAG, "network provider does not exist, " + ex.getMessage());
        }
        try {
            mLocationManager.requestLocationUpdates(
                    LocationManager.GPS_PROVIDER, LOCATION_INTERVAL, LOCATION_DISTANCE,
                    mLocationListeners[0]);
        } catch (java.lang.SecurityException ex) {
            Log.i(TAG, "fail to request location update, ignore", ex);
        } catch (IllegalArgumentException ex) {
            Log.d(TAG, "gps provider does not exist " + ex.getMessage());
        }
    }

    @Override
    public void onDestroy() {
        Log.e(TAG, "onDestroy");
        super.onDestroy();
        if (mLocationManager != null) {
            for (int i = 0; i < mLocationListeners.length; i++) {
                try {
                    mLocationManager.removeUpdates(mLocationListeners[i]);
                } catch (Exception ex) {
                    Log.i(TAG, "fail to remove location listners, ignore", ex);
                }
            }
        }
    }

    private void initializeLocationManager() {
        Log.e(TAG, "initializeLocationManager");
        if (mLocationManager == null) {
            mLocationManager = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE);
        }
    }
}
Computer, programmieren, Java, Android, Android Studio
1 Antwort
Android Studio/ nach update von Gradle Plugin gibt es von dem geschriebenen Programm mehrere Fehler die ich so nicht selbt beheben kann.... wie weiter?

Hallo

Ich nutze Android Studio Version 3.2.1(Ausgangsgerät wird ein auf Android 5.1 (Lollipop) laufendes Gerät sein), wenn ich nun die App öffne (https://codeload.github.com/felHR85/SerialPortExample/zip/master) kriege ich automatisch direkt eine Nachricht das es empfehlenswert wäre auf ein Update zu wechseln, wenn ich dieses nun ausführe kommt direkt erst einmal ein Fehler von einer im Programm genutzten Variable den ich so gelöst habe....

Fehler tritt auf unter:

Reiter auf Project

SerialPortExample-master>

example>

scr>

main>

java>

com.felhr.serialportexample>

MainActivity

Die rot markierte Variable R habe ich markiert und dann mit Alt+Enter den befehl Create class R ausgeführt,danach noch Sync Project with Gradle Files , somit glaube ich den Fehler richtig behoben zu haben jedoch wenn dieser Fehler scheinbar weg ist, gibt es einen weiteren Fehler der unter Run tasks (:example:mergeDebugResources) gelistet wird wo ich selbst leider mir nicht mehr zu helfen weiß und ich hoffe das es ein weitaus fähigeren Programmierer gibt der mir bei meinem Problem helfen kann.

Damit du es selbst ausprobieren kannst um es nachzuvollziehen kannst du dir mit dem Link(https://codeload.github.com/felHR85/SerialPortExample/zip/master) das Programm ziehen (es soll mir die Kommunikation über den USB zu einem anderen Gerät gewährleisten).

Über einen Klick auf den Link das Programm Downloaden

Downloadete Zip Datei entpacken

Über Androidstudios, aus der entpackten Zip Datei den SerialPortExample-master öffnen

Öffnen lassen und kurz warten es sollte kurz nach öffnen des Programms nach einem Update fragen

Danke schon mal im Voraus!!!!!!

Computer, Technik, programmieren, Java, Update, Android, Technologie, Android Studio, Spiele und Gaming
0 Antworten
Was bedeutet der Fehler(Android Studio, Java)?

E/AndroidRuntime: FATAL EXCEPTION: main

  Process: com.supermario.myapplication, PID: 8893

  java.lang.NullPointerException

    at android.support.v7.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:249)

    at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:182)

    at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520)

    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)

    at com.supermario.myapplication.ErstesLevel.<init>(ErstesLevel.java:10)

    at com.supermario.myapplication.Start.onClick(Start.java:22)

    at android.view.View.performClick(View.java:4438)

    at android.view.View$PerformClick.run(View.java:18422)

    at android.os.Handler.handleCallback(Handler.java:733)

    at android.os.Handler.dispatchMessage(Handler.java:95)

    at android.os.Looper.loop(Looper.java:136)

    at android.app.ActivityThread.main(ActivityThread.java:5017)

    at java.lang.reflect.Method.invokeNative(Native Method)

    at java.lang.reflect.Method.invoke(Method.java:515)

    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)

    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)

    at dalvik.system.NativeStart.main(Native Method)

programmieren, Java, Programmierung, Android Studio
2 Antworten
.setText durch ein Bild ersetzten?

Hallo, ich bin ein Android Studio Anfänger und ich habe ein kleines Tic Tac Toe Spiel entwickelt. Ich habe ein Frage ist es möglich, dass man das .setText (Zeile 57 und 59) durch ein Bild ersetzen kann?

MainActivity.java (Ganzer Code: https://plus.google.com/111007986583866803319/posts/c2sU2pgzUji):

package com.example.bastian.tictactoe;

import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private Button[][] buttons = new Button[3][3];

private boolean player1Turn = true;

private int roundCount;

private int player1Points;
private int player2Points;

private TextView textViewPlayer1;
private TextView textViewPlayer2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    textViewPlayer1 = findViewById(R.id.text_view_p1);
    textViewPlayer2 = findViewById(R.id.text_view_p2);

    for (int i = 0; i &lt; 3; i++) {
        for (int j = 0; j &lt; 3; j++) {
            String buttonID = "button_" + i + j;
            int resID = getResources().getIdentifier(buttonID, "id", getPackageName());
            buttons[i][j] = findViewById(resID);
            buttons[i][j].setOnClickListener(this);
        }
    }

    Button buttonReset = findViewById(R.id.button_reset);
    buttonReset.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            resetGame();
        }
    });
}

@Override
public void onClick(View v) {
    if (!((Button) v).getText().toString().equals("")) {
        return;
    }

    if (player1Turn) {
        ((Button) v).setText("X");
    } else {
        ((Button) v).setText("0");
    }

    roundCount++;

    if (checkForWin()) {
        if (player1Turn) {
            player1Wins();
        } else {
            player2Wins();
        }
    } else if (roundCount == 9) {
        draw();
    } else {
        player1Turn = !player1Turn;
    }

}

private boolean checkForWin() {
    String[][] field = new String[3][3];

    for (int i = 0; i &lt; 3; i++) {
        for (int j = 0; j &lt; 3; j++) {
            field[i][j] = buttons[i][j].getText().toString();
        }
    }

    for (int i = 0; i &lt; 3; i++) {
        if (field[i][0].equals(field[i][1])
                &amp;&amp; field[i][0].equals(field[i][2])
                &amp;&amp; !field[i][0].equals("")) {
            return true;
        }
    }

    for (int i = 0; i &lt; 3; i++) {
        if (field[0][i].equals(field[1][i])
                &amp;&amp; field[0][i].equals(field[2][i])
                &amp;&amp; !field[0][i].equals("")) {
            return true;
        }
    }

    if (field[0][0].equals(field[1][1])
            &amp;&amp; field[0][0].equals(field[2][2])
            &amp;&amp; !field[0][0].equals("")) {
        return true;
    }

    if (field[0][2].equals(field[1][1])
            &amp;&amp; field[0][2].equals(field[2][0])
            &amp;&amp; !field[0][2].equals("")) {
        return true;
    }

    return false;
}

private void player1Wins() {
    player1Points++;
    Toast.makeText(this, "Spieler 1 hat gewonnen!", Toast.LENGTH_SHORT).show();
    updatePointsText();
    resetBoard();
}

private void player2Wins() {
    player2Points++;
    

programmieren, Java, Android, Studio, entwickeln, tic tac toe, Android Studio
2 Antworten
Probleme mit Socket bei Android Studio?

Hallo Communety,

Ich versuche mit Androidstudio eine Chat-App auf Basis von Java zu Programmieren.

Bisher hab ich eine Login-Aktivety erstellt. Nun versuche ich eine Socketverbindung aufzubauen und Daten zu einem Server zu vermitteln, den ich vorher schon genutzt habe. Nun bekomme ich diese Exception:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: chat.chatclient, PID: 30824
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.OutputStream java.net.Socket.getOutputStream()' on a null object reference
        at socketio.Socket.write(Socket.java:187)
        at chat.chatclient.Login.onClick(Login.java:52)
        at android.view.View.performClick(View.java:5646)
        at android.view.View$PerformClick.run(View.java:22473)
        at android.os.Handler.handleCallback(Handler.java:761)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:156)
        at android.app.ActivityThread.main(ActivityThread.java:6523)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)

Weiß einer was ich da tun muss?

Datein liegen hier als txt

https://we.tl/t-vXltVk4z68

LG

Platofan23

PC, Computer, programmieren, Java, Gaming, Android, Socket, Android Studio
1 Antwort

Meistgelesene Fragen zum Thema Android Studio