Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3260 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

(redaguota)

Turių susitvarkęs tokį aplikacijos kodą:

package com.gpslocation;

import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.widget.TextView;

import java.text.DateFormat;
import java.util.Date;

public class GPS_Location extends Activity implements LocationListener {

    String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());

    String intMonth = (String) android.text.format.DateFormat.format("MM", new Date());
    String year = (String) android.text.format.DateFormat.format("yyyy", new Date());
    String day = (String) android.text.format.DateFormat.format("dd", new Date());
    String hour = (String) android.text.format.DateFormat.format("kk", new Date());
    String minute = (String) android.text.format.DateFormat.format("mm", new Date());
    String second = (String) android.text.format.DateFormat.format("ss", new Date());

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gps__location);
        TextView textView = (TextView) findViewById(R.id.textView1);
        textView.setText("GPS COORDINATES:");
        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            return;
        }
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
    }


    @Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub

        double latitude = (location.getLatitude());
        double longitude = (location.getLongitude());
        intMonth = (String) android.text.format.DateFormat.format("MM", new Date());
        year = (String) android.text.format.DateFormat.format("yyyy", new Date());
        day = (String) android.text.format.DateFormat.format("dd", new Date());
        hour = (String) android.text.format.DateFormat.format("kk", new Date());
        minute = (String) android.text.format.DateFormat.format("mm", new Date());
        second = (String) android.text.format.DateFormat.format("ss", new Date());

        TextView textView = (TextView) findViewById(R.id.textView1);
        textView.setText("Latitude: " + latitude + ", Longitude: " + longitude + "\nDate: " + year +" - " + intMonth +" - " + day + "\nTime: " + hour + " - " + minute + " - " + second);
    }

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

}

Norėčiau, kad ši aplikacija startuotu automatiškai įjungus plančetę/telefona, ir kad chekintu pvz kas 5sec.

 

Ateityje noras būtu kad tuos gautus duomenis įmestu į mysql db.

Redaguota , nario mindux9

350kb.gif.60acf06a62660bcb545f8147b88ee261.gif

Thanks :o

Dabar ilgokai knisausi bei bandžiau kai ką padaryti, bet pasiduodu :D

Startavus sistemai, kartu pasijunge ir aplikacija. Man nereikia kad ji pasijungtu, man reikia kad ta aplikacija ar servisas nežinau kaip pavadint, dirbtų fone. Taprasme, ką reiškia pasijunge aplikacija? Kaip ir kiekviena aplikacija kurią pajungi, atsiveria tos aplikacijos pagrindinis langas ir pnš. Man to nereikia :/

Manifestas:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.gpslocation"

    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">



    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:supportsRtl="true"

        android:theme="@style/AppTheme" >



        <receiver android:name=".Autostart">

            <intent-filter>

                <action android:name="android.intent.action.BOOT_COMPLETED" />

            </intent-filter>

        </receiver>

        <activity android:name=".pagrindinis"></activity>

        <service android:enabled="true" android:name=".GPS_Location" />

    </application>





</manifest>

Receiveris:

package com.gpslocation;



import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.util.Log;



public class Autostart extends BroadcastReceiver

{

    public void onReceive(Context arg0, Intent arg1)

    {

        Intent intent = new Intent(arg0,GPS_Location.class);

        arg0.startService(intent);

        Log.i("Autostart", "started");

    }

}

Servisas:

package com.gpslocation;



import android.app.Service;

import android.content.Intent;

import android.os.IBinder;

import android.util.Log;



public class GPS_Location extends Service {



    private static final String TAG = "MyService";

    @Override

    public IBinder onBind(Intent intent) {

        return null;

    }

    public void onDestroy() {

        Log.d(TAG, "onDestroy");

    }



    @Override

    public void onStart(Intent intent, int startid)

    {

        Intent intents = new Intent(getBaseContext(),pagrindinis.class);

        intents.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        startActivity(intents);

        Log.d(TAG, "onStart");

    }





}

Koordinačių ir datos čekinimas:

package com.gpslocation;



import android.Manifest;

import android.app.Activity;

import android.content.Context;

import android.content.pm.PackageManager;

import android.location.Location;

import android.location.LocationListener;

import android.location.LocationManager;

import android.os.Bundle;

import android.support.v4.app.ActivityCompat;

import android.util.Log;



import java.util.Date;



public class pagrindinis extends Activity implements LocationListener {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

            return;

        }

        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);

    }

    String intMonth;

    String year;

    String day;

    String hour;

    String minute;

    String second ;

    double latitude;

    double longitude;







    @Override

    public void onLocationChanged(Location location) {



        latitude = (location.getLatitude());

        longitude = (location.getLongitude());

        intMonth = (String) android.text.format.DateFormat.format("MM", new Date());

        year = (String) android.text.format.DateFormat.format("yyyy", new Date());

        day = (String) android.text.format.DateFormat.format("dd", new Date());

        hour = (String) android.text.format.DateFormat.format("kk", new Date());

        minute = (String) android.text.format.DateFormat.format("mm", new Date());

        second = (String) android.text.format.DateFormat.format("ss", new Date());



        Log.i("GPS", "Lat: " + latitude + ", Lon: " + longitude + " Date: " + year +" - " + intMonth +" - " + day + " Time: " + hour + " - " + minute + " - " + second);



    }

    @Override

    public void onProviderDisabled(String provider) {

    }

    @Override

    public void onProviderEnabled(String provider) {

    }

    @Override

    public void onStatusChanged(String provider, int status, Bundle extras) {

    }

}

350kb.gif.60acf06a62660bcb545f8147b88ee261.gif

(redaguota)

Susitvarkiau, kad neatidarytu, tik dabar mastau kaip padaryt kad tarkim kas keles sekundes chekintu, o ne kas sekunde.

 

Kaip ir minėjau, naudok threadus.

public class PeriodicChecker extends Thread
{
    @Override
    public void run()
    {
        while(true) {
           //čia checkini location ir t.t.
           Thread.sleep(5000); //laikas mili sekundem
        }
    }
}

Kaip paleisti:

      Thread t = new PeriodicChecker();
      t.start();
Redaguota , nario ProGreen
  • Teigiamai 1

Filthy-Frank.jpg

(redaguota)

Lyg ir kažkas gavosi.

Ar toks variantas tinka?   :blink:

package com.gpslocation;

import android.Manifest;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.support.v4.app.ActivityCompat;
import android.util.Log;

import java.util.Date;

public class GPS_Location extends Service implements LocationListener {

    String intMonth;
    String year;
    String day;
    String hour;
    String minute;
    String second;
    private static final String TAG = "GPS SERVICE";

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

    public void onDestroy() {
        Log.d(TAG, "onDestroy");
    }

    Handler mHandler = new Handler();

    final Runnable mHandlerTask = new Runnable() {
        @Override
        public void run() {
            Log.d(TAG, "servisas runina");

            intMonth = (String) android.text.format.DateFormat.format("MM", new Date());
            year = (String) android.text.format.DateFormat.format("yyyy", new Date());
            day = (String) android.text.format.DateFormat.format("dd", new Date());
            hour = (String) android.text.format.DateFormat.format("kk", new Date());
            minute = (String) android.text.format.DateFormat.format("mm", new Date());
            second = (String) android.text.format.DateFormat.format("ss", new Date());
            Log.i("GPS", "Date: " + year + " - " + intMonth + " - " + day + " Time: " + hour + " - " + minute + " - " + second);

            Log.i("GPS", "Lat: " + latitude + ", Lon: " + longitude);

            mHandler.postDelayed(mHandlerTask, 5000);
        }
    };

    @Override
    public void onStart(Intent intent, int startid) {
        mHandlerTask.run();
        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            return;
        }
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 0, this);

        Log.d(TAG, "onStart");
    }
    double latitude;
    double longitude;

    @Override
    public void onLocationChanged(Location location) {
        latitude = (location.getLatitude());
        longitude = (location.getLongitude());
    }

    @Override
    public void onProviderDisabled(String provider) {
    }

    @Override
    public void onProviderEnabled(String provider) {
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }

}
Redaguota , nario mindux9

350kb.gif.60acf06a62660bcb545f8147b88ee261.gif

Na galutinis jau gavosi toks. Turbūt ties tuom ir apsistosiu :D
Kam reikės galit imt :D
Temą galima rakint :)

Gradle-build'as

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "com.gpslocation"
        minSdkVersion 22
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.google.android.gms:play-services-location:8.1.0'
    compile 'com.android.support:design:23.3.0'
    compile 'com.android.support:support-v4:23.2.1'

}

Manifest'as

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.gpslocation"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >

        <receiver android:name=".Autostart">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
        <service android:enabled="true" android:name=".GPS_Location" />
    </application>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

</manifest>

BroadcastReceiver'is

package com.gpslocation;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class Autostart extends BroadcastReceiver
{
    public void onReceive(Context arg0, Intent arg1)
    {
        Intent intent = new Intent(arg0,GPS_Location.class);
        arg0.startService(intent);
        Log.i("Autostart", "started");
    }
}

GPS_Location

package com.gpslocation;

import android.Manifest;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.StrictMode;
import android.support.v4.app.ActivityCompat;
import android.telephony.TelephonyManager;
import android.util.Log;

import com.google.android.gms.maps.model.LatLng;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;

public class GPS_Location extends Service implements LocationListener {

    String intMonth;
    String inYear;
    String inDay;
    String inHour;
    String inMinute;
    String inSecond;
    String month;
    String year;
    String day;
    String hour;
    String minute;
    String second;
    double latitude;
    double longitude;
    String innlat;
    String innlon;
    LatLng markerPosition;
    String imei;
    String mPhoneNumber;
    private static final String TAG = "GPS SERVICE";


    InputStream is=null;
    String result=null;
    String line=null;
    int code;

    Handler mHandler = new Handler();

    final Runnable mHandlerTask = new Runnable() {
        @Override
        public void run() {
            Log.d(TAG, "servisas runina");

            intMonth = (String) android.text.format.DateFormat.format("MM", new Date());
            inYear = (String) android.text.format.DateFormat.format("yyyy", new Date());
            inDay = (String) android.text.format.DateFormat.format("dd", new Date());
            inHour = (String) android.text.format.DateFormat.format("kk", new Date());
            inMinute = (String) android.text.format.DateFormat.format("mm", new Date());
            inSecond = (String) android.text.format.DateFormat.format("ss", new Date());

            year = inYear;
            month = intMonth;
            day = inDay;
            hour = inHour;
            minute = inMinute;
            second = inSecond;


            innlat = Double.toString(latitude);
            innlon = Double.toString(longitude);

            if( (innlat == "0.0") && (innlon == "0.0")) {}else{ insert();}

            //Log.d(TAG, "GPS: " + innlat +" - "+ innlon + " Imei: " + imei + " Number: " + mPhoneNumber);
            mHandler.postDelayed(mHandlerTask, 5000);
        }
    };

    public void insert()
    {
        if (android.os.Build.VERSION.SDK_INT > 21) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }

        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

        nameValuePairs.add(new BasicNameValuePair("lat", innlat));
        nameValuePairs.add(new BasicNameValuePair("lon",innlon));

        nameValuePairs.add(new BasicNameValuePair("year",year));
        nameValuePairs.add(new BasicNameValuePair("month",month));
        nameValuePairs.add(new BasicNameValuePair("day",day));
        nameValuePairs.add(new BasicNameValuePair("hour",hour));
        nameValuePairs.add(new BasicNameValuePair("minute",minute));
        nameValuePairs.add(new BasicNameValuePair("second",second));

        nameValuePairs.add(new BasicNameValuePair("imei",imei));
        nameValuePairs.add(new BasicNameValuePair("mPhoneNumber",mPhoneNumber));


        try
        {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://mywebsite.ggg/gps.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
            //Log.e("pass 1", "connection success ");
        }
        catch(Exception e)
        {
            /*Log.e("Fail 1", e.toString());
            Toast.makeText(getApplicationContext(), "Invalid IP Address",
                    Toast.LENGTH_LONG).show();*/
        }

        try
        {
            BufferedReader reader = new BufferedReader
                    (new InputStreamReader(is,"iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null)
            {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
            //Log.e("pass 2", "connection success ");
        }
        catch(Exception e)
        {
            //Log.e("Fail 2", e.toString());
        }

        try
        {
            JSONObject json_data = new JSONObject(result);
            code=(json_data.getInt("code"));

            if(code==1)
            {
                /*Toast.makeText(getBaseContext(), "Inserted Successfully",
                        Toast.LENGTH_SHORT).show();*/
            }
            else
            {
                /*Toast.makeText(getBaseContext(), "Sorry, Try Again",
                        Toast.LENGTH_LONG).show();*/
            }
        }
        catch(Exception e)
        {
            //Log.e("Fail 3", e.toString());
        }
    }
    @Override
    public void onStart(Intent intent, int startid) {
        mHandlerTask.run();
        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            return;
        }
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 0, this);
        TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
        imei = tm.getDeviceId();
        mPhoneNumber = tm.getLine1Number();
        Log.d(TAG, "onStart");
    }

    @Override
    public void onLocationChanged(Location location) {
        latitude = (location.getLatitude());
        longitude = (location.getLongitude());
    }

    @Override
    public void onProviderDisabled(String provider) {
    }

    @Override
    public void onProviderEnabled(String provider) {
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }
}

gps.php

<?php
    $host='localhost';
    $uname='root';
    $pwd='';
    $db="test";

    $con = mysql_connect($host,$uname,$pwd) or die("connection failed");
    mysql_select_db($db,$con) or die("db selection failed");
    
    
    $lat=$_REQUEST['lat'];
    $lon=$_REQUEST['lon'];
    $year=$_REQUEST['year'];
    $month=$_REQUEST['month'];
    $day=$_REQUEST['day'];
    $hour=$_REQUEST['hour'];
    $minute=$_REQUEST['minute'];
    $second=$_REQUEST['second'];
    $imei=$_REQUEST['imei'];
    $mPhoneNumber=$_REQUEST['mPhoneNumber'];
    
    $get2=mysql_query("SELECT SERIJINIS FROM plansetes WHERE IMEI='$imei'");
    $option2 = '';
    while($row2 = mysql_fetch_assoc($get2))
    {
        $option2 = $row2['SERIJINIS'];
    }

    $flag['code']=0;

    if($r=mysql_query("INSERT INTO gps  (SERIJINIS,TELEFONAS,LAT,LON,YEAR,MONTH,DAY,HOUR,MINUTE,SECOND) VALUES ('$option2','$mPhoneNumber','$lat','$lon','$year','$month','$day','$hour','$minute','$second') ",$con))
    {
        $flag['code']=1;
    }

    print(json_encode($flag));
    mysql_close($con);
?>
  • Teigiamai 1

350kb.gif.60acf06a62660bcb545f8147b88ee261.gif

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3260 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...