Stránka 1 z 1

[Android]Příklad AndroidGPSTracking

Napsal: 12 dub 2018, 18:06
od markoni
Mě tady buď chybí nebo přebývá nebo mám ji na nesprávném místě }

Kód: Vybrat vše

package com.example.gpstracking;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.widget.CheckBox;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class AndroidGPSTrackingActivity extends Activity {
    String souradnice;
    Button btnShowLocation;
     
    // Definice globální proměnné GPSTracker class
    GPSTracker gps;
    Calendar c = Calendar.getInstance();
   private CheckBox checkBox1;
   private CheckBox checkBox2;
   public static String soubor="lokace.txt";
   String s;
   double lat;
    double lon;
    String datum;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        btnShowLocation = (Button) findViewById(R.id.btnShowLocation);
        checkBox1=(CheckBox)findViewById(R.id.checkBox1);
        checkBox2=(CheckBox)findViewById(R.id.checkBox2);
        // Přiřazení Click listeneru tlačítku pro zobrazení souřadnic
       
        btnShowLocation.setOnClickListener(new View.OnClickListener() {
                
            @Override
           /* public void save(View v){
               try{
                  OutputStream MyOutputStreams = openFileOutput(soubor,0);
                  OutputStreamWriter MyOutputStream = new OutputStreamWriter(MyOutputStreams);
                  MyOutputStream.write(s);
                  MyOutputStream.close();
                  //Log.d("save", "save");
                  Toast.makeText(this, "Zapis do souboru proběhl v pořádku",Toast.LENGTH_LONG).show();
               } catch (Exception e){
                  //e.printStackTrace();{
                  // Log.d("eror", "eror");
                  Toast.makeText(this, "Zapis do souboru se nepodařil",Toast.LENGTH_LONG).show();
               }
               
            }*/
            public void onClick(View arg0) { 
               
                // Vytvoření instance třídy GPSTracker
                gps = new GPSTracker(AndroidGPSTrackingActivity.this);
 
                // Kontrola, zda je zapnuta GPS v zařízení   
                if(gps.canGetLocation()){
                     
                    double latitude = gps.getLatitude();
                    double longitude = gps.getLongitude();
             if (checkBox1.isChecked()){
                
                    SmsManager smsManager=SmsManager.getDefault();
                   
                    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yy HH:mm");
                    String formattedDate = df.format(c.getTime());
                    String sms= "http://maps.google.com/maps?f=g&g="+Double.toString(lat)+","+Double.toString(lon)+"&z16";
                    //sms=sms+Double.toString(lon);
                    //public String f= formattedDate+"\n"+sms;
                    s=formattedDate+"\n"+sms+"\n";
                    smsManager.sendTextMessage("123456978", null, formattedDate+"\n"+sms, null, null);
                   datum=formattedDate;
              }
            if (checkBox2.isChecked()){
               if (isWriteable()){
                  write();
               }
            }
             
             
                    Toast.makeText(getApplicationContext(), "Gps souřadnice jsou - \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();   
                }else{
                    // Pokud nemůžeme získat souřadnice pomocí GPS
                    // nebo je získání souřadnic pomocí sítě vypnuto
                    // zobrazíme uživateli dialogové okno
                    gps.showSettingsAlert();
                }
                 
            }
       
   
     

private void write()
{
   File sdCard= new File (Environment.getExternalStorageDirectory()+"/msoubory");
   if (!sdCard.exists()){
      sdCard.mkdir();
   }
   File f= new File(sdCard.getAbsolutePath(),"Lokace.txt");
   
   try
   {
      FileOutputStream fos = new FileOutputStream(f,true);
      String data = datum+"\n"+"http://maps.google.com/maps?f=g&g="+Double.toString(lat)+","+Double.toString(lon)+"&z16";
      try {
         
         fos.write(data.getBytes());
         fos.close();
      } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
   }catch (FileNotFoundException e){
      e.printStackTrace();
   }
   
}
private boolean isWriteable()
{
     if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
     {
        return true;
     }else {
        return false;
     }
}}}}

díky za pomoc

Napsal: 12 dub 2018, 19:49
od FHonza
IMHO po rychlém pohledu mi přijde že tady je jedna navíc "ozávorkovaná":


nepodařil",Toast.LENGTH_LONG).show();
}

}*/


a tím pádem jedna je na konci navíc

Napsal: 12 dub 2018, 20:26
od markoni
Není ta závorka zakomentována? tam jsou frakmenty části kódů zakomentovány protože jsem zjistil že tudy cesta nevede ,já vím že jsem v tomto bordelář protože si říkám kdyby se to na nĕco hodilo /*...

Napsal: 12 dub 2018, 21:51
od p32
Nevím jestli sjem to nepřehlédl, ale máš tam 18 otevíracích a 19 zavíracích závorek. Poznámky jsem samozřejmě nepočítal.

Napsal: 13 dub 2018, 12:04
od FHonza
Nemůžu se dohledat odpovídající kulaté závorce k téhle

btnShowLocation.setOnClickListener(new View.OnClickListener() {

Není problém v tom ?

Jinak nevím jestli znáš online formatter. Někdy to docela pomůže

Napsal: 13 dub 2018, 13:36
od markoni
Asi takto : já jsem použil ten příklad z nadpisu jen ze zvědavosti jak mi funguje GPS potom jsem na youtube video našel funkční příklad posílání SMS a nějak se mi to podařilo dát dohromady a udělal jsem to tak že když zatrhnu checkBox tak mi při zmáčknutí tlačítka zobrazit pozici GPS tak mi to pošle SMS datum a odkaz https://www.google.com/maps?f=q&q=0.0,0.0&z=16 s aktuálními souřadnicemi a teď se tam pokouším doprogramovat metodu která my při zatržení druhého checkBoxu zapíše do textového souboru v mobilu protože SMS něco stojí :( a právě v těch závorkách buď složených nebo nesložených dělám chybu.A ten textový soubor je kapitola sama od sebe nedaří se mi ho zapsat na SD kartu i když dávám Environment.getExternalStorageDirectory(); pořád to píše do "/storage/emulated/0" místo"/storage/sdkard0" a ještě k tomu když mobil připojím přes usb na PC tak ten soubor nevidím, dostávám se k němu pomocí aplikace v mobilu Total Commander díky
edit ještě doplňuji skenem

Napsal: 29 dub 2018, 20:12
od markoni
Nechci zakládat nové vlákno tak to píši sem k vůli nutnosti testovat ty" moje výtvory"na fyzickém zařízení -telefonu tak jsem si nainstaloval android studio tam je docela dobrá funkcionalita "Device File Explorer viz příloha mám tomu rozumět tak že když napíší program na zapisování dat do souboru a spustím ho ve emulátoru tak ten soubor uvidím v té funkcionalitě ? rád bych aby to tak bylo díky