Is it possible to make a wear app that connects to my android app activity(maps)










6















I have a program that has one activity which the user can record his trip by pressing a button from one place to an other.I want somehow to make a wear app that connects with this activity so the user can press that button from the smartwatch and basically do whatever the android activity does.



Here is the code in case it's helpful



Map.java



public class Map extends AppCompatActivity implements LocationListener, OnMapReadyCallback, NavigationView.OnNavigationItemSelectedListener {

//VARIABLES

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

//CALL SERVICE
Intent serviceIntent=new Intent(this, MyLocationService.class);
startService(serviceIntent);


getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
toolbar.setTitle("");
toolbar.setSubtitle("");

//gpsStatus = (TextView) findViewById(R.id.gpsStatus);
dis = (TextView) findViewById(R.id.distancePreview);

newActL = (RelativeLayout) findViewById(R.id.newAct);
startActL = (RelativeLayout) findViewById(R.id.Act);
timer = (TextView) findViewById(R.id.timePreview);

newActB = (ImageButton) findViewById(R.id.newActB);
stopActB = (ImageButton) findViewById(R.id.stopActB);
gearMap = (ImageButton) findViewById(R.id.gearmap);

List<String> spinnerArray = new ArrayList<String>();
spinnerArray.add("Arrival");
spinnerArray.add("Departure");

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, spinnerArray);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sItems = (Spinner) findViewById(R.id.ardep);
sItems.setAdapter(adapter);

List<String> spinnerArray2 = new ArrayList<String>();
spinnerArray2.add("Running");
spinnerArray2.add("Walking");
spinnerArray2.add("Cycling");
spinnerArray2.add("Roller skating");
spinnerArray2.add("Skateboarding");
spinnerArray2.add("Kickbiking");
spinnerArray2.add("Teleporting");

ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, spinnerArray2);

adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
actCombo = (Spinner) findViewById(R.id.actCombo);
actCombo.setAdapter(adapter2);
Calendar rightNow = Calendar.getInstance();
int currentHour = rightNow.get(Calendar.HOUR_OF_DAY);
if (currentHour < 12)
actCombo.setSelection(GetInfo.arract - 1);
sItems.setSelection(0);
else
actCombo.setSelection(GetInfo.depact - 1);
sItems.setSelection(1);


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,
3000,
1, this);

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapview);
mapFragment.getMapAsync(this);
line = new PolylineOptions().width(3).color(Color.BLUE);

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();

navigationView = (NavigationView) findViewById(R.id.nav_view);
headerView = navigationView.getHeaderView(0);
fullnameside = (TextView) headerView.findViewById(R.id.fullnameside);
emailside = (TextView) headerView.findViewById(R.id.emailside);
fullnameside.setText("" + GetInfo.fullname);
emailside.setText("" + GetInfo.email);

navigationView.setNavigationItemSelectedListener(this);
navigationView.getMenu().getItem(1).setChecked(true);

//Toast.makeText(this.getBaseContext(), ""+ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION), Toast.LENGTH_SHORT).show();


private void getLocation()
//Toast.makeText(getBaseContext(), "e paides", Toast.LENGTH_SHORT).show();
String locationProvider = LocationManager.NETWORK_PROVIDER;
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String permissions,
// int grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;

Location location = locationManager.getLastKnownLocation(locationProvider);
try
line.add(new LatLng(location.getLatitude(), location.getLongitude()));
GMap.addMarker(new MarkerOptions().position(new LatLng(location.getLatitude(), location.getLongitude())).title(""));
GMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 16.0f));
steps++;
getloc = true;
catch (NullPointerException e)
//Toast.makeText(this.getBaseContext(), "gyhg" + e.toString(), Toast.LENGTH_LONG).show();



public void StopTrip(View v)
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Stop and upload your trip?")
.setCancelable(true)
.setNegativeButton("NO", new DialogInterface.OnClickListener()
@Override
public void onClick(DialogInterface dialog, int which)


)
.setPositiveButton("YES", new DialogInterface.OnClickListener()
public void onClick(DialogInterface dialog, int id)
float finalDistance = (float) (distance / 1000.0);
if (finalDistance < 2)
Intent myIntent = new Intent(Map.this, Profile.class);
startActivity(myIntent);

TimeBuff += MillisecondTime;
handler.removeCallbacks(runnable);
// newActL.setVisibility(View.GONE);
// startActL.setVisibility(View.VISIBLE);
enabledActivity = false;
//database post
try
Date currentTime = Calendar.getInstance().getTime();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = df.format(currentTime);

Date currentTime2 = Calendar.getInstance().getTime();
SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd%20HH:mm:ss");
dateActEnd = df2.format(currentTime2);

String act = actCombo.getSelectedItem().toString();
String act_id = "7";
switch (act)
case "Running":
act_id = "1";
break;
case "Walking":
act_id = "2";
break;
case "Cycling":
act_id = "3";
break;
case "Roller skating":
act_id = "4";
break;
case "Skateboarding":
act_id = "5";
break;
case "Kickbiking":
act_id = "6";
break;
case "Teleporting":
act_id = "7";
break;


String direcor;
if (sItems.getSelectedItem().toString().equals("Arrival"))
direcor = "arrival";
else
direcor = "departure";

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
// String.format("%.1f", finalDistance)
URL obj = new URL("https://gekon.technologypark.cz/api/v1/record/create?user=" + LoginInfo.UserID
+ "&date=" + formattedDate + "&distance=" + String.format("%.1f", finalDistance) + "&direction=" + direcor
+ "&activity=" + act_id + "&polyline=" + PolyUtil.encode(line.getPoints()) + "&start=" + dateActStart
+ "&end=" + dateActEnd + "&source=mobileapp");

HttpsURLConnection conn = (HttpsURLConnection) obj.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("ApiSecret", LoginInfo.ApiSecret);
conn.connect();
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
StringBuilder sb = new StringBuilder();
String output;
while ((output = br.readLine()) != null)
sb.append(output);

JSONObject jsonObj = new JSONObject(sb.toString());
JSONObject curRecord = new JSONObject(jsonObj.getString("data"));

Trips.datet.add(currentTime);
Trips.datestr.add(formattedDate);
Trips.act.add(act_id);
Trips.tripType.add(sItems.getSelectedItem().toString());
Trips.dist.add(String.format("%.1f", finalDistance));
Trips.trip_ids.add(curRecord.getString("trip_id"));
Trips.calc(++Trips.points);

TripsCalendarInfo.datet.add(currentTime);
TripsCalendarInfo.act.add(act_id);
TripsCalendarInfo.act_str.add(act);
TripsCalendarInfo.tripType.add(sItems.getSelectedItem().toString());
TripsCalendarInfo.dist.add(String.format("%.1f", finalDistance));
TripsCalendarInfo.datestr.add(formattedDate);
TripsCalendarInfo.trip_ids.add(curRecord.getString("trip_id"));
TripsCalendarInfo.trip_source.add("mobileapp");
TripsCalendarInfo.polyline.add(PolyUtil.encode(line.getPoints()));
TripsCalendarInfo.CanItrip();

float km_up = Float.parseFloat(TripsInfo.km.get(TripsInfo.userRank - 1)) + finalDistance;
int trip_up = Integer.parseInt(TripsInfo.trips.get(TripsInfo.userRank - 1)) + 1;
TripsInfo.trips.set(TripsInfo.userRank - 1, "" + trip_up);
TripsInfo.km.set(TripsInfo.userRank - 1, String.format("%.1f", km_up));
TripsInfo.rankSort();

getloc = false;

Intent myIntent = new Intent(Map.this, Profile.class);
startActivity(myIntent);

catch (Exception e)
Toast.makeText(getBaseContext(), "Error upload, please check your options at gear button", Toast.LENGTH_LONG).show();


);
float finalDistance = (float) (distance / 1000.0);
if (finalDistance < 2)
builder.setMessage("Your trip is below 2km and it will not be counted.nAre you sure you want to stop?");

AlertDialog alert = builder.create();
alert.show();




public void StartAct(View v)
timer.setVisibility(View.VISIBLE);
dis.setVisibility(View.VISIBLE);
newActB.setVisibility(View.GONE);
stopActB.setVisibility(View.VISIBLE);
//gearMap.setVisibility(View.GONE);
navigationView.setVisibility(View.GONE);
//headerView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
toolbar.setNavigationIcon(null); // to hide Navigation icon
//toolbar.setDisplayHomeAsUpEnabled(false);
handler = new Handler();

Date currentTime = Calendar.getInstance().getTime();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd%20HH:mm:ss");
dateActStart = df.format(currentTime);
StartTime = SystemClock.uptimeMillis();
handler.postDelayed(runnable, 0);

startService(new Intent(this, LocationService.class));
//enabledActivity = true;


public void ChangeAct(View v)
if (newActL.getVisibility() == View.GONE)
newActL.setVisibility(View.VISIBLE);
startActL.setVisibility(View.GONE);
else
newActL.setVisibility(View.GONE);
startActL.setVisibility(View.VISIBLE);



public Runnable runnable = new Runnable()

public void run()

MillisecondTime = SystemClock.uptimeMillis() - StartTime;

UpdateTime = TimeBuff + MillisecondTime;

Seconds = (int) (UpdateTime / 1000);

Minutes = Seconds / 60;

Hours = Minutes / 60;

Seconds = Seconds % 60;

Minutes = Minutes % 60;

MilliSeconds = (int) (UpdateTime % 100);

timer.setText("Time: " + String.format("%02d", Hours) + ":"
+ String.format("%02d", Minutes) + ":"
+ String.format("%02d", Seconds));

handler.postDelayed(this, 950);


;

@Override
public void onMapReady(GoogleMap map)
GMap = map;
GMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(49.8117806, 15.6970293), 6.0f));
if (!getloc)
getLocation();



Map.java










share|improve this question




























    6















    I have a program that has one activity which the user can record his trip by pressing a button from one place to an other.I want somehow to make a wear app that connects with this activity so the user can press that button from the smartwatch and basically do whatever the android activity does.



    Here is the code in case it's helpful



    Map.java



    public class Map extends AppCompatActivity implements LocationListener, OnMapReadyCallback, NavigationView.OnNavigationItemSelectedListener {

    //VARIABLES

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

    //CALL SERVICE
    Intent serviceIntent=new Intent(this, MyLocationService.class);
    startService(serviceIntent);


    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    toolbar.setTitle("");
    toolbar.setSubtitle("");

    //gpsStatus = (TextView) findViewById(R.id.gpsStatus);
    dis = (TextView) findViewById(R.id.distancePreview);

    newActL = (RelativeLayout) findViewById(R.id.newAct);
    startActL = (RelativeLayout) findViewById(R.id.Act);
    timer = (TextView) findViewById(R.id.timePreview);

    newActB = (ImageButton) findViewById(R.id.newActB);
    stopActB = (ImageButton) findViewById(R.id.stopActB);
    gearMap = (ImageButton) findViewById(R.id.gearmap);

    List<String> spinnerArray = new ArrayList<String>();
    spinnerArray.add("Arrival");
    spinnerArray.add("Departure");

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
    this, android.R.layout.simple_spinner_item, spinnerArray);

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    sItems = (Spinner) findViewById(R.id.ardep);
    sItems.setAdapter(adapter);

    List<String> spinnerArray2 = new ArrayList<String>();
    spinnerArray2.add("Running");
    spinnerArray2.add("Walking");
    spinnerArray2.add("Cycling");
    spinnerArray2.add("Roller skating");
    spinnerArray2.add("Skateboarding");
    spinnerArray2.add("Kickbiking");
    spinnerArray2.add("Teleporting");

    ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(
    this, android.R.layout.simple_spinner_item, spinnerArray2);

    adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    actCombo = (Spinner) findViewById(R.id.actCombo);
    actCombo.setAdapter(adapter2);
    Calendar rightNow = Calendar.getInstance();
    int currentHour = rightNow.get(Calendar.HOUR_OF_DAY);
    if (currentHour < 12)
    actCombo.setSelection(GetInfo.arract - 1);
    sItems.setSelection(0);
    else
    actCombo.setSelection(GetInfo.depact - 1);
    sItems.setSelection(1);


    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,
    3000,
    1, this);

    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapview);
    mapFragment.getMapAsync(this);
    line = new PolylineOptions().width(3).color(Color.BLUE);

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
    this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    navigationView = (NavigationView) findViewById(R.id.nav_view);
    headerView = navigationView.getHeaderView(0);
    fullnameside = (TextView) headerView.findViewById(R.id.fullnameside);
    emailside = (TextView) headerView.findViewById(R.id.emailside);
    fullnameside.setText("" + GetInfo.fullname);
    emailside.setText("" + GetInfo.email);

    navigationView.setNavigationItemSelectedListener(this);
    navigationView.getMenu().getItem(1).setChecked(true);

    //Toast.makeText(this.getBaseContext(), ""+ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION), Toast.LENGTH_SHORT).show();


    private void getLocation()
    //Toast.makeText(getBaseContext(), "e paides", Toast.LENGTH_SHORT).show();
    String locationProvider = LocationManager.NETWORK_PROVIDER;
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
    // TODO: Consider calling
    // ActivityCompat#requestPermissions
    // here to request the missing permissions, and then overriding
    // public void onRequestPermissionsResult(int requestCode, String permissions,
    // int grantResults)
    // to handle the case where the user grants the permission. See the documentation
    // for ActivityCompat#requestPermissions for more details.
    return;

    Location location = locationManager.getLastKnownLocation(locationProvider);
    try
    line.add(new LatLng(location.getLatitude(), location.getLongitude()));
    GMap.addMarker(new MarkerOptions().position(new LatLng(location.getLatitude(), location.getLongitude())).title(""));
    GMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 16.0f));
    steps++;
    getloc = true;
    catch (NullPointerException e)
    //Toast.makeText(this.getBaseContext(), "gyhg" + e.toString(), Toast.LENGTH_LONG).show();



    public void StopTrip(View v)
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Stop and upload your trip?")
    .setCancelable(true)
    .setNegativeButton("NO", new DialogInterface.OnClickListener()
    @Override
    public void onClick(DialogInterface dialog, int which)


    )
    .setPositiveButton("YES", new DialogInterface.OnClickListener()
    public void onClick(DialogInterface dialog, int id)
    float finalDistance = (float) (distance / 1000.0);
    if (finalDistance < 2)
    Intent myIntent = new Intent(Map.this, Profile.class);
    startActivity(myIntent);

    TimeBuff += MillisecondTime;
    handler.removeCallbacks(runnable);
    // newActL.setVisibility(View.GONE);
    // startActL.setVisibility(View.VISIBLE);
    enabledActivity = false;
    //database post
    try
    Date currentTime = Calendar.getInstance().getTime();
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    String formattedDate = df.format(currentTime);

    Date currentTime2 = Calendar.getInstance().getTime();
    SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd%20HH:mm:ss");
    dateActEnd = df2.format(currentTime2);

    String act = actCombo.getSelectedItem().toString();
    String act_id = "7";
    switch (act)
    case "Running":
    act_id = "1";
    break;
    case "Walking":
    act_id = "2";
    break;
    case "Cycling":
    act_id = "3";
    break;
    case "Roller skating":
    act_id = "4";
    break;
    case "Skateboarding":
    act_id = "5";
    break;
    case "Kickbiking":
    act_id = "6";
    break;
    case "Teleporting":
    act_id = "7";
    break;


    String direcor;
    if (sItems.getSelectedItem().toString().equals("Arrival"))
    direcor = "arrival";
    else
    direcor = "departure";

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    // String.format("%.1f", finalDistance)
    URL obj = new URL("https://gekon.technologypark.cz/api/v1/record/create?user=" + LoginInfo.UserID
    + "&date=" + formattedDate + "&distance=" + String.format("%.1f", finalDistance) + "&direction=" + direcor
    + "&activity=" + act_id + "&polyline=" + PolyUtil.encode(line.getPoints()) + "&start=" + dateActStart
    + "&end=" + dateActEnd + "&source=mobileapp");

    HttpsURLConnection conn = (HttpsURLConnection) obj.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("ApiSecret", LoginInfo.ApiSecret);
    conn.connect();
    BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
    StringBuilder sb = new StringBuilder();
    String output;
    while ((output = br.readLine()) != null)
    sb.append(output);

    JSONObject jsonObj = new JSONObject(sb.toString());
    JSONObject curRecord = new JSONObject(jsonObj.getString("data"));

    Trips.datet.add(currentTime);
    Trips.datestr.add(formattedDate);
    Trips.act.add(act_id);
    Trips.tripType.add(sItems.getSelectedItem().toString());
    Trips.dist.add(String.format("%.1f", finalDistance));
    Trips.trip_ids.add(curRecord.getString("trip_id"));
    Trips.calc(++Trips.points);

    TripsCalendarInfo.datet.add(currentTime);
    TripsCalendarInfo.act.add(act_id);
    TripsCalendarInfo.act_str.add(act);
    TripsCalendarInfo.tripType.add(sItems.getSelectedItem().toString());
    TripsCalendarInfo.dist.add(String.format("%.1f", finalDistance));
    TripsCalendarInfo.datestr.add(formattedDate);
    TripsCalendarInfo.trip_ids.add(curRecord.getString("trip_id"));
    TripsCalendarInfo.trip_source.add("mobileapp");
    TripsCalendarInfo.polyline.add(PolyUtil.encode(line.getPoints()));
    TripsCalendarInfo.CanItrip();

    float km_up = Float.parseFloat(TripsInfo.km.get(TripsInfo.userRank - 1)) + finalDistance;
    int trip_up = Integer.parseInt(TripsInfo.trips.get(TripsInfo.userRank - 1)) + 1;
    TripsInfo.trips.set(TripsInfo.userRank - 1, "" + trip_up);
    TripsInfo.km.set(TripsInfo.userRank - 1, String.format("%.1f", km_up));
    TripsInfo.rankSort();

    getloc = false;

    Intent myIntent = new Intent(Map.this, Profile.class);
    startActivity(myIntent);

    catch (Exception e)
    Toast.makeText(getBaseContext(), "Error upload, please check your options at gear button", Toast.LENGTH_LONG).show();


    );
    float finalDistance = (float) (distance / 1000.0);
    if (finalDistance < 2)
    builder.setMessage("Your trip is below 2km and it will not be counted.nAre you sure you want to stop?");

    AlertDialog alert = builder.create();
    alert.show();




    public void StartAct(View v)
    timer.setVisibility(View.VISIBLE);
    dis.setVisibility(View.VISIBLE);
    newActB.setVisibility(View.GONE);
    stopActB.setVisibility(View.VISIBLE);
    //gearMap.setVisibility(View.GONE);
    navigationView.setVisibility(View.GONE);
    //headerView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    toolbar.setNavigationIcon(null); // to hide Navigation icon
    //toolbar.setDisplayHomeAsUpEnabled(false);
    handler = new Handler();

    Date currentTime = Calendar.getInstance().getTime();
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd%20HH:mm:ss");
    dateActStart = df.format(currentTime);
    StartTime = SystemClock.uptimeMillis();
    handler.postDelayed(runnable, 0);

    startService(new Intent(this, LocationService.class));
    //enabledActivity = true;


    public void ChangeAct(View v)
    if (newActL.getVisibility() == View.GONE)
    newActL.setVisibility(View.VISIBLE);
    startActL.setVisibility(View.GONE);
    else
    newActL.setVisibility(View.GONE);
    startActL.setVisibility(View.VISIBLE);



    public Runnable runnable = new Runnable()

    public void run()

    MillisecondTime = SystemClock.uptimeMillis() - StartTime;

    UpdateTime = TimeBuff + MillisecondTime;

    Seconds = (int) (UpdateTime / 1000);

    Minutes = Seconds / 60;

    Hours = Minutes / 60;

    Seconds = Seconds % 60;

    Minutes = Minutes % 60;

    MilliSeconds = (int) (UpdateTime % 100);

    timer.setText("Time: " + String.format("%02d", Hours) + ":"
    + String.format("%02d", Minutes) + ":"
    + String.format("%02d", Seconds));

    handler.postDelayed(this, 950);


    ;

    @Override
    public void onMapReady(GoogleMap map)
    GMap = map;
    GMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(49.8117806, 15.6970293), 6.0f));
    if (!getloc)
    getLocation();



    Map.java










    share|improve this question


























      6












      6








      6








      I have a program that has one activity which the user can record his trip by pressing a button from one place to an other.I want somehow to make a wear app that connects with this activity so the user can press that button from the smartwatch and basically do whatever the android activity does.



      Here is the code in case it's helpful



      Map.java



      public class Map extends AppCompatActivity implements LocationListener, OnMapReadyCallback, NavigationView.OnNavigationItemSelectedListener {

      //VARIABLES

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

      //CALL SERVICE
      Intent serviceIntent=new Intent(this, MyLocationService.class);
      startService(serviceIntent);


      getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
      toolbar = (Toolbar) findViewById(R.id.toolbar);
      setSupportActionBar(toolbar);
      getSupportActionBar().setDisplayShowTitleEnabled(false);
      toolbar.setTitle("");
      toolbar.setSubtitle("");

      //gpsStatus = (TextView) findViewById(R.id.gpsStatus);
      dis = (TextView) findViewById(R.id.distancePreview);

      newActL = (RelativeLayout) findViewById(R.id.newAct);
      startActL = (RelativeLayout) findViewById(R.id.Act);
      timer = (TextView) findViewById(R.id.timePreview);

      newActB = (ImageButton) findViewById(R.id.newActB);
      stopActB = (ImageButton) findViewById(R.id.stopActB);
      gearMap = (ImageButton) findViewById(R.id.gearmap);

      List<String> spinnerArray = new ArrayList<String>();
      spinnerArray.add("Arrival");
      spinnerArray.add("Departure");

      ArrayAdapter<String> adapter = new ArrayAdapter<String>(
      this, android.R.layout.simple_spinner_item, spinnerArray);

      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      sItems = (Spinner) findViewById(R.id.ardep);
      sItems.setAdapter(adapter);

      List<String> spinnerArray2 = new ArrayList<String>();
      spinnerArray2.add("Running");
      spinnerArray2.add("Walking");
      spinnerArray2.add("Cycling");
      spinnerArray2.add("Roller skating");
      spinnerArray2.add("Skateboarding");
      spinnerArray2.add("Kickbiking");
      spinnerArray2.add("Teleporting");

      ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(
      this, android.R.layout.simple_spinner_item, spinnerArray2);

      adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      actCombo = (Spinner) findViewById(R.id.actCombo);
      actCombo.setAdapter(adapter2);
      Calendar rightNow = Calendar.getInstance();
      int currentHour = rightNow.get(Calendar.HOUR_OF_DAY);
      if (currentHour < 12)
      actCombo.setSelection(GetInfo.arract - 1);
      sItems.setSelection(0);
      else
      actCombo.setSelection(GetInfo.depact - 1);
      sItems.setSelection(1);


      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,
      3000,
      1, this);

      SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapview);
      mapFragment.getMapAsync(this);
      line = new PolylineOptions().width(3).color(Color.BLUE);

      DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
      ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
      drawer.addDrawerListener(toggle);
      toggle.syncState();

      navigationView = (NavigationView) findViewById(R.id.nav_view);
      headerView = navigationView.getHeaderView(0);
      fullnameside = (TextView) headerView.findViewById(R.id.fullnameside);
      emailside = (TextView) headerView.findViewById(R.id.emailside);
      fullnameside.setText("" + GetInfo.fullname);
      emailside.setText("" + GetInfo.email);

      navigationView.setNavigationItemSelectedListener(this);
      navigationView.getMenu().getItem(1).setChecked(true);

      //Toast.makeText(this.getBaseContext(), ""+ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION), Toast.LENGTH_SHORT).show();


      private void getLocation()
      //Toast.makeText(getBaseContext(), "e paides", Toast.LENGTH_SHORT).show();
      String locationProvider = LocationManager.NETWORK_PROVIDER;
      if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
      // TODO: Consider calling
      // ActivityCompat#requestPermissions
      // here to request the missing permissions, and then overriding
      // public void onRequestPermissionsResult(int requestCode, String permissions,
      // int grantResults)
      // to handle the case where the user grants the permission. See the documentation
      // for ActivityCompat#requestPermissions for more details.
      return;

      Location location = locationManager.getLastKnownLocation(locationProvider);
      try
      line.add(new LatLng(location.getLatitude(), location.getLongitude()));
      GMap.addMarker(new MarkerOptions().position(new LatLng(location.getLatitude(), location.getLongitude())).title(""));
      GMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 16.0f));
      steps++;
      getloc = true;
      catch (NullPointerException e)
      //Toast.makeText(this.getBaseContext(), "gyhg" + e.toString(), Toast.LENGTH_LONG).show();



      public void StopTrip(View v)
      AlertDialog.Builder builder = new AlertDialog.Builder(this);
      builder.setMessage("Stop and upload your trip?")
      .setCancelable(true)
      .setNegativeButton("NO", new DialogInterface.OnClickListener()
      @Override
      public void onClick(DialogInterface dialog, int which)


      )
      .setPositiveButton("YES", new DialogInterface.OnClickListener()
      public void onClick(DialogInterface dialog, int id)
      float finalDistance = (float) (distance / 1000.0);
      if (finalDistance < 2)
      Intent myIntent = new Intent(Map.this, Profile.class);
      startActivity(myIntent);

      TimeBuff += MillisecondTime;
      handler.removeCallbacks(runnable);
      // newActL.setVisibility(View.GONE);
      // startActL.setVisibility(View.VISIBLE);
      enabledActivity = false;
      //database post
      try
      Date currentTime = Calendar.getInstance().getTime();
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
      String formattedDate = df.format(currentTime);

      Date currentTime2 = Calendar.getInstance().getTime();
      SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd%20HH:mm:ss");
      dateActEnd = df2.format(currentTime2);

      String act = actCombo.getSelectedItem().toString();
      String act_id = "7";
      switch (act)
      case "Running":
      act_id = "1";
      break;
      case "Walking":
      act_id = "2";
      break;
      case "Cycling":
      act_id = "3";
      break;
      case "Roller skating":
      act_id = "4";
      break;
      case "Skateboarding":
      act_id = "5";
      break;
      case "Kickbiking":
      act_id = "6";
      break;
      case "Teleporting":
      act_id = "7";
      break;


      String direcor;
      if (sItems.getSelectedItem().toString().equals("Arrival"))
      direcor = "arrival";
      else
      direcor = "departure";

      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
      StrictMode.setThreadPolicy(policy);
      // String.format("%.1f", finalDistance)
      URL obj = new URL("https://gekon.technologypark.cz/api/v1/record/create?user=" + LoginInfo.UserID
      + "&date=" + formattedDate + "&distance=" + String.format("%.1f", finalDistance) + "&direction=" + direcor
      + "&activity=" + act_id + "&polyline=" + PolyUtil.encode(line.getPoints()) + "&start=" + dateActStart
      + "&end=" + dateActEnd + "&source=mobileapp");

      HttpsURLConnection conn = (HttpsURLConnection) obj.openConnection();
      conn.setRequestMethod("POST");
      conn.setRequestProperty("ApiSecret", LoginInfo.ApiSecret);
      conn.connect();
      BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
      StringBuilder sb = new StringBuilder();
      String output;
      while ((output = br.readLine()) != null)
      sb.append(output);

      JSONObject jsonObj = new JSONObject(sb.toString());
      JSONObject curRecord = new JSONObject(jsonObj.getString("data"));

      Trips.datet.add(currentTime);
      Trips.datestr.add(formattedDate);
      Trips.act.add(act_id);
      Trips.tripType.add(sItems.getSelectedItem().toString());
      Trips.dist.add(String.format("%.1f", finalDistance));
      Trips.trip_ids.add(curRecord.getString("trip_id"));
      Trips.calc(++Trips.points);

      TripsCalendarInfo.datet.add(currentTime);
      TripsCalendarInfo.act.add(act_id);
      TripsCalendarInfo.act_str.add(act);
      TripsCalendarInfo.tripType.add(sItems.getSelectedItem().toString());
      TripsCalendarInfo.dist.add(String.format("%.1f", finalDistance));
      TripsCalendarInfo.datestr.add(formattedDate);
      TripsCalendarInfo.trip_ids.add(curRecord.getString("trip_id"));
      TripsCalendarInfo.trip_source.add("mobileapp");
      TripsCalendarInfo.polyline.add(PolyUtil.encode(line.getPoints()));
      TripsCalendarInfo.CanItrip();

      float km_up = Float.parseFloat(TripsInfo.km.get(TripsInfo.userRank - 1)) + finalDistance;
      int trip_up = Integer.parseInt(TripsInfo.trips.get(TripsInfo.userRank - 1)) + 1;
      TripsInfo.trips.set(TripsInfo.userRank - 1, "" + trip_up);
      TripsInfo.km.set(TripsInfo.userRank - 1, String.format("%.1f", km_up));
      TripsInfo.rankSort();

      getloc = false;

      Intent myIntent = new Intent(Map.this, Profile.class);
      startActivity(myIntent);

      catch (Exception e)
      Toast.makeText(getBaseContext(), "Error upload, please check your options at gear button", Toast.LENGTH_LONG).show();


      );
      float finalDistance = (float) (distance / 1000.0);
      if (finalDistance < 2)
      builder.setMessage("Your trip is below 2km and it will not be counted.nAre you sure you want to stop?");

      AlertDialog alert = builder.create();
      alert.show();




      public void StartAct(View v)
      timer.setVisibility(View.VISIBLE);
      dis.setVisibility(View.VISIBLE);
      newActB.setVisibility(View.GONE);
      stopActB.setVisibility(View.VISIBLE);
      //gearMap.setVisibility(View.GONE);
      navigationView.setVisibility(View.GONE);
      //headerView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
      toolbar.setNavigationIcon(null); // to hide Navigation icon
      //toolbar.setDisplayHomeAsUpEnabled(false);
      handler = new Handler();

      Date currentTime = Calendar.getInstance().getTime();
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd%20HH:mm:ss");
      dateActStart = df.format(currentTime);
      StartTime = SystemClock.uptimeMillis();
      handler.postDelayed(runnable, 0);

      startService(new Intent(this, LocationService.class));
      //enabledActivity = true;


      public void ChangeAct(View v)
      if (newActL.getVisibility() == View.GONE)
      newActL.setVisibility(View.VISIBLE);
      startActL.setVisibility(View.GONE);
      else
      newActL.setVisibility(View.GONE);
      startActL.setVisibility(View.VISIBLE);



      public Runnable runnable = new Runnable()

      public void run()

      MillisecondTime = SystemClock.uptimeMillis() - StartTime;

      UpdateTime = TimeBuff + MillisecondTime;

      Seconds = (int) (UpdateTime / 1000);

      Minutes = Seconds / 60;

      Hours = Minutes / 60;

      Seconds = Seconds % 60;

      Minutes = Minutes % 60;

      MilliSeconds = (int) (UpdateTime % 100);

      timer.setText("Time: " + String.format("%02d", Hours) + ":"
      + String.format("%02d", Minutes) + ":"
      + String.format("%02d", Seconds));

      handler.postDelayed(this, 950);


      ;

      @Override
      public void onMapReady(GoogleMap map)
      GMap = map;
      GMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(49.8117806, 15.6970293), 6.0f));
      if (!getloc)
      getLocation();



      Map.java










      share|improve this question
















      I have a program that has one activity which the user can record his trip by pressing a button from one place to an other.I want somehow to make a wear app that connects with this activity so the user can press that button from the smartwatch and basically do whatever the android activity does.



      Here is the code in case it's helpful



      Map.java



      public class Map extends AppCompatActivity implements LocationListener, OnMapReadyCallback, NavigationView.OnNavigationItemSelectedListener {

      //VARIABLES

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

      //CALL SERVICE
      Intent serviceIntent=new Intent(this, MyLocationService.class);
      startService(serviceIntent);


      getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
      toolbar = (Toolbar) findViewById(R.id.toolbar);
      setSupportActionBar(toolbar);
      getSupportActionBar().setDisplayShowTitleEnabled(false);
      toolbar.setTitle("");
      toolbar.setSubtitle("");

      //gpsStatus = (TextView) findViewById(R.id.gpsStatus);
      dis = (TextView) findViewById(R.id.distancePreview);

      newActL = (RelativeLayout) findViewById(R.id.newAct);
      startActL = (RelativeLayout) findViewById(R.id.Act);
      timer = (TextView) findViewById(R.id.timePreview);

      newActB = (ImageButton) findViewById(R.id.newActB);
      stopActB = (ImageButton) findViewById(R.id.stopActB);
      gearMap = (ImageButton) findViewById(R.id.gearmap);

      List<String> spinnerArray = new ArrayList<String>();
      spinnerArray.add("Arrival");
      spinnerArray.add("Departure");

      ArrayAdapter<String> adapter = new ArrayAdapter<String>(
      this, android.R.layout.simple_spinner_item, spinnerArray);

      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      sItems = (Spinner) findViewById(R.id.ardep);
      sItems.setAdapter(adapter);

      List<String> spinnerArray2 = new ArrayList<String>();
      spinnerArray2.add("Running");
      spinnerArray2.add("Walking");
      spinnerArray2.add("Cycling");
      spinnerArray2.add("Roller skating");
      spinnerArray2.add("Skateboarding");
      spinnerArray2.add("Kickbiking");
      spinnerArray2.add("Teleporting");

      ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(
      this, android.R.layout.simple_spinner_item, spinnerArray2);

      adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      actCombo = (Spinner) findViewById(R.id.actCombo);
      actCombo.setAdapter(adapter2);
      Calendar rightNow = Calendar.getInstance();
      int currentHour = rightNow.get(Calendar.HOUR_OF_DAY);
      if (currentHour < 12)
      actCombo.setSelection(GetInfo.arract - 1);
      sItems.setSelection(0);
      else
      actCombo.setSelection(GetInfo.depact - 1);
      sItems.setSelection(1);


      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,
      3000,
      1, this);

      SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapview);
      mapFragment.getMapAsync(this);
      line = new PolylineOptions().width(3).color(Color.BLUE);

      DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
      ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
      drawer.addDrawerListener(toggle);
      toggle.syncState();

      navigationView = (NavigationView) findViewById(R.id.nav_view);
      headerView = navigationView.getHeaderView(0);
      fullnameside = (TextView) headerView.findViewById(R.id.fullnameside);
      emailside = (TextView) headerView.findViewById(R.id.emailside);
      fullnameside.setText("" + GetInfo.fullname);
      emailside.setText("" + GetInfo.email);

      navigationView.setNavigationItemSelectedListener(this);
      navigationView.getMenu().getItem(1).setChecked(true);

      //Toast.makeText(this.getBaseContext(), ""+ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION), Toast.LENGTH_SHORT).show();


      private void getLocation()
      //Toast.makeText(getBaseContext(), "e paides", Toast.LENGTH_SHORT).show();
      String locationProvider = LocationManager.NETWORK_PROVIDER;
      if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
      // TODO: Consider calling
      // ActivityCompat#requestPermissions
      // here to request the missing permissions, and then overriding
      // public void onRequestPermissionsResult(int requestCode, String permissions,
      // int grantResults)
      // to handle the case where the user grants the permission. See the documentation
      // for ActivityCompat#requestPermissions for more details.
      return;

      Location location = locationManager.getLastKnownLocation(locationProvider);
      try
      line.add(new LatLng(location.getLatitude(), location.getLongitude()));
      GMap.addMarker(new MarkerOptions().position(new LatLng(location.getLatitude(), location.getLongitude())).title(""));
      GMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 16.0f));
      steps++;
      getloc = true;
      catch (NullPointerException e)
      //Toast.makeText(this.getBaseContext(), "gyhg" + e.toString(), Toast.LENGTH_LONG).show();



      public void StopTrip(View v)
      AlertDialog.Builder builder = new AlertDialog.Builder(this);
      builder.setMessage("Stop and upload your trip?")
      .setCancelable(true)
      .setNegativeButton("NO", new DialogInterface.OnClickListener()
      @Override
      public void onClick(DialogInterface dialog, int which)


      )
      .setPositiveButton("YES", new DialogInterface.OnClickListener()
      public void onClick(DialogInterface dialog, int id)
      float finalDistance = (float) (distance / 1000.0);
      if (finalDistance < 2)
      Intent myIntent = new Intent(Map.this, Profile.class);
      startActivity(myIntent);

      TimeBuff += MillisecondTime;
      handler.removeCallbacks(runnable);
      // newActL.setVisibility(View.GONE);
      // startActL.setVisibility(View.VISIBLE);
      enabledActivity = false;
      //database post
      try
      Date currentTime = Calendar.getInstance().getTime();
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
      String formattedDate = df.format(currentTime);

      Date currentTime2 = Calendar.getInstance().getTime();
      SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd%20HH:mm:ss");
      dateActEnd = df2.format(currentTime2);

      String act = actCombo.getSelectedItem().toString();
      String act_id = "7";
      switch (act)
      case "Running":
      act_id = "1";
      break;
      case "Walking":
      act_id = "2";
      break;
      case "Cycling":
      act_id = "3";
      break;
      case "Roller skating":
      act_id = "4";
      break;
      case "Skateboarding":
      act_id = "5";
      break;
      case "Kickbiking":
      act_id = "6";
      break;
      case "Teleporting":
      act_id = "7";
      break;


      String direcor;
      if (sItems.getSelectedItem().toString().equals("Arrival"))
      direcor = "arrival";
      else
      direcor = "departure";

      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
      StrictMode.setThreadPolicy(policy);
      // String.format("%.1f", finalDistance)
      URL obj = new URL("https://gekon.technologypark.cz/api/v1/record/create?user=" + LoginInfo.UserID
      + "&date=" + formattedDate + "&distance=" + String.format("%.1f", finalDistance) + "&direction=" + direcor
      + "&activity=" + act_id + "&polyline=" + PolyUtil.encode(line.getPoints()) + "&start=" + dateActStart
      + "&end=" + dateActEnd + "&source=mobileapp");

      HttpsURLConnection conn = (HttpsURLConnection) obj.openConnection();
      conn.setRequestMethod("POST");
      conn.setRequestProperty("ApiSecret", LoginInfo.ApiSecret);
      conn.connect();
      BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
      StringBuilder sb = new StringBuilder();
      String output;
      while ((output = br.readLine()) != null)
      sb.append(output);

      JSONObject jsonObj = new JSONObject(sb.toString());
      JSONObject curRecord = new JSONObject(jsonObj.getString("data"));

      Trips.datet.add(currentTime);
      Trips.datestr.add(formattedDate);
      Trips.act.add(act_id);
      Trips.tripType.add(sItems.getSelectedItem().toString());
      Trips.dist.add(String.format("%.1f", finalDistance));
      Trips.trip_ids.add(curRecord.getString("trip_id"));
      Trips.calc(++Trips.points);

      TripsCalendarInfo.datet.add(currentTime);
      TripsCalendarInfo.act.add(act_id);
      TripsCalendarInfo.act_str.add(act);
      TripsCalendarInfo.tripType.add(sItems.getSelectedItem().toString());
      TripsCalendarInfo.dist.add(String.format("%.1f", finalDistance));
      TripsCalendarInfo.datestr.add(formattedDate);
      TripsCalendarInfo.trip_ids.add(curRecord.getString("trip_id"));
      TripsCalendarInfo.trip_source.add("mobileapp");
      TripsCalendarInfo.polyline.add(PolyUtil.encode(line.getPoints()));
      TripsCalendarInfo.CanItrip();

      float km_up = Float.parseFloat(TripsInfo.km.get(TripsInfo.userRank - 1)) + finalDistance;
      int trip_up = Integer.parseInt(TripsInfo.trips.get(TripsInfo.userRank - 1)) + 1;
      TripsInfo.trips.set(TripsInfo.userRank - 1, "" + trip_up);
      TripsInfo.km.set(TripsInfo.userRank - 1, String.format("%.1f", km_up));
      TripsInfo.rankSort();

      getloc = false;

      Intent myIntent = new Intent(Map.this, Profile.class);
      startActivity(myIntent);

      catch (Exception e)
      Toast.makeText(getBaseContext(), "Error upload, please check your options at gear button", Toast.LENGTH_LONG).show();


      );
      float finalDistance = (float) (distance / 1000.0);
      if (finalDistance < 2)
      builder.setMessage("Your trip is below 2km and it will not be counted.nAre you sure you want to stop?");

      AlertDialog alert = builder.create();
      alert.show();




      public void StartAct(View v)
      timer.setVisibility(View.VISIBLE);
      dis.setVisibility(View.VISIBLE);
      newActB.setVisibility(View.GONE);
      stopActB.setVisibility(View.VISIBLE);
      //gearMap.setVisibility(View.GONE);
      navigationView.setVisibility(View.GONE);
      //headerView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
      toolbar.setNavigationIcon(null); // to hide Navigation icon
      //toolbar.setDisplayHomeAsUpEnabled(false);
      handler = new Handler();

      Date currentTime = Calendar.getInstance().getTime();
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd%20HH:mm:ss");
      dateActStart = df.format(currentTime);
      StartTime = SystemClock.uptimeMillis();
      handler.postDelayed(runnable, 0);

      startService(new Intent(this, LocationService.class));
      //enabledActivity = true;


      public void ChangeAct(View v)
      if (newActL.getVisibility() == View.GONE)
      newActL.setVisibility(View.VISIBLE);
      startActL.setVisibility(View.GONE);
      else
      newActL.setVisibility(View.GONE);
      startActL.setVisibility(View.VISIBLE);



      public Runnable runnable = new Runnable()

      public void run()

      MillisecondTime = SystemClock.uptimeMillis() - StartTime;

      UpdateTime = TimeBuff + MillisecondTime;

      Seconds = (int) (UpdateTime / 1000);

      Minutes = Seconds / 60;

      Hours = Minutes / 60;

      Seconds = Seconds % 60;

      Minutes = Minutes % 60;

      MilliSeconds = (int) (UpdateTime % 100);

      timer.setText("Time: " + String.format("%02d", Hours) + ":"
      + String.format("%02d", Minutes) + ":"
      + String.format("%02d", Seconds));

      handler.postDelayed(this, 950);


      ;

      @Override
      public void onMapReady(GoogleMap map)
      GMap = map;
      GMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(49.8117806, 15.6970293), 6.0f));
      if (!getloc)
      getLocation();



      Map.java







      android maps sony-smartwatch






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 2 '18 at 8:42







      Alex Kolydas

















      asked Nov 2 '18 at 8:04









      Alex KolydasAlex Kolydas

      338215




      338215






















          1 Answer
          1






          active

          oldest

          votes


















          1














          Using the Maps SDK for Android, you can create a map-based wearable app



          The following code sample enables ambient mode in the app and in the map:



          public class MainActivity extends WearableActivity
          implements OnMapReadyCallback, GoogleMap.OnMapLongClickListener

          private MapFragment mMapFragment;

          public void onCreate(Bundle savedState)
          super.onCreate(savedState);

          // Enable ambient support, so the map remains visible in a simplified,
          // low-color display when the user is no longer actively using the app
          // and the app is still visible on the watch face.
          setAmbientEnabled();

          // ... Perform other activity setup processes here too ...


          /**
          * Starts ambient mode on the map.
          * The API swaps to a non-interactive and low-color rendering of the map
          * when the user is no longer actively using the app.
          */
          @Override
          public void onEnterAmbient(Bundle ambientDetails)
          super.onEnterAmbient(ambientDetails);
          mMapFragment.onEnterAmbient(ambientDetails);


          /**
          * Exits ambient mode on the map.
          * The API swaps to the normal rendering of the map when the user starts
          * actively using the app.
          */
          @Override
          public void onExitAmbient()
          super.onExitAmbient();
          mMapFragment.onExitAmbient();








          share|improve this answer






















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53114763%2fis-it-possible-to-make-a-wear-app-that-connects-to-my-android-app-activitymaps%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            Using the Maps SDK for Android, you can create a map-based wearable app



            The following code sample enables ambient mode in the app and in the map:



            public class MainActivity extends WearableActivity
            implements OnMapReadyCallback, GoogleMap.OnMapLongClickListener

            private MapFragment mMapFragment;

            public void onCreate(Bundle savedState)
            super.onCreate(savedState);

            // Enable ambient support, so the map remains visible in a simplified,
            // low-color display when the user is no longer actively using the app
            // and the app is still visible on the watch face.
            setAmbientEnabled();

            // ... Perform other activity setup processes here too ...


            /**
            * Starts ambient mode on the map.
            * The API swaps to a non-interactive and low-color rendering of the map
            * when the user is no longer actively using the app.
            */
            @Override
            public void onEnterAmbient(Bundle ambientDetails)
            super.onEnterAmbient(ambientDetails);
            mMapFragment.onEnterAmbient(ambientDetails);


            /**
            * Exits ambient mode on the map.
            * The API swaps to the normal rendering of the map when the user starts
            * actively using the app.
            */
            @Override
            public void onExitAmbient()
            super.onExitAmbient();
            mMapFragment.onExitAmbient();








            share|improve this answer



























              1














              Using the Maps SDK for Android, you can create a map-based wearable app



              The following code sample enables ambient mode in the app and in the map:



              public class MainActivity extends WearableActivity
              implements OnMapReadyCallback, GoogleMap.OnMapLongClickListener

              private MapFragment mMapFragment;

              public void onCreate(Bundle savedState)
              super.onCreate(savedState);

              // Enable ambient support, so the map remains visible in a simplified,
              // low-color display when the user is no longer actively using the app
              // and the app is still visible on the watch face.
              setAmbientEnabled();

              // ... Perform other activity setup processes here too ...


              /**
              * Starts ambient mode on the map.
              * The API swaps to a non-interactive and low-color rendering of the map
              * when the user is no longer actively using the app.
              */
              @Override
              public void onEnterAmbient(Bundle ambientDetails)
              super.onEnterAmbient(ambientDetails);
              mMapFragment.onEnterAmbient(ambientDetails);


              /**
              * Exits ambient mode on the map.
              * The API swaps to the normal rendering of the map when the user starts
              * actively using the app.
              */
              @Override
              public void onExitAmbient()
              super.onExitAmbient();
              mMapFragment.onExitAmbient();








              share|improve this answer

























                1












                1








                1







                Using the Maps SDK for Android, you can create a map-based wearable app



                The following code sample enables ambient mode in the app and in the map:



                public class MainActivity extends WearableActivity
                implements OnMapReadyCallback, GoogleMap.OnMapLongClickListener

                private MapFragment mMapFragment;

                public void onCreate(Bundle savedState)
                super.onCreate(savedState);

                // Enable ambient support, so the map remains visible in a simplified,
                // low-color display when the user is no longer actively using the app
                // and the app is still visible on the watch face.
                setAmbientEnabled();

                // ... Perform other activity setup processes here too ...


                /**
                * Starts ambient mode on the map.
                * The API swaps to a non-interactive and low-color rendering of the map
                * when the user is no longer actively using the app.
                */
                @Override
                public void onEnterAmbient(Bundle ambientDetails)
                super.onEnterAmbient(ambientDetails);
                mMapFragment.onEnterAmbient(ambientDetails);


                /**
                * Exits ambient mode on the map.
                * The API swaps to the normal rendering of the map when the user starts
                * actively using the app.
                */
                @Override
                public void onExitAmbient()
                super.onExitAmbient();
                mMapFragment.onExitAmbient();








                share|improve this answer













                Using the Maps SDK for Android, you can create a map-based wearable app



                The following code sample enables ambient mode in the app and in the map:



                public class MainActivity extends WearableActivity
                implements OnMapReadyCallback, GoogleMap.OnMapLongClickListener

                private MapFragment mMapFragment;

                public void onCreate(Bundle savedState)
                super.onCreate(savedState);

                // Enable ambient support, so the map remains visible in a simplified,
                // low-color display when the user is no longer actively using the app
                // and the app is still visible on the watch face.
                setAmbientEnabled();

                // ... Perform other activity setup processes here too ...


                /**
                * Starts ambient mode on the map.
                * The API swaps to a non-interactive and low-color rendering of the map
                * when the user is no longer actively using the app.
                */
                @Override
                public void onEnterAmbient(Bundle ambientDetails)
                super.onEnterAmbient(ambientDetails);
                mMapFragment.onEnterAmbient(ambientDetails);


                /**
                * Exits ambient mode on the map.
                * The API swaps to the normal rendering of the map when the user starts
                * actively using the app.
                */
                @Override
                public void onExitAmbient()
                super.onExitAmbient();
                mMapFragment.onExitAmbient();









                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 12 '18 at 9:18









                Sachin KasaraddiSachin Kasaraddi

                31327




                31327





























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53114763%2fis-it-possible-to-make-a-wear-app-that-connects-to-my-android-app-activitymaps%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

                    Crossroads (UK TV series)

                    ữḛḳṊẴ ẋ,Ẩṙ,ỹḛẪẠứụỿṞṦ,Ṉẍừ,ứ Ị,Ḵ,ṏ ṇỪḎḰṰọửḊ ṾḨḮữẑỶṑỗḮṣṉẃ Ữẩụ,ṓ,ḹẕḪḫỞṿḭ ỒṱṨẁṋṜ ḅẈ ṉ ứṀḱṑỒḵ,ḏ,ḊḖỹẊ Ẻḷổ,ṥ ẔḲẪụḣể Ṱ ḭỏựẶ Ồ Ṩ,ẂḿṡḾồ ỗṗṡịṞẤḵṽẃ ṸḒẄẘ,ủẞẵṦṟầṓế