Page 460 - 2
P. 460

if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permissi
            on.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermi
            ssion(getApplicationContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISS
            ION_GRANTED) {
                                        return;
                                     }
                                     Location location = getLastKnownLocation();


                                     if(location != null) {
                                        Weather_Manager weather_manager = new Weather_Manager();
                                        Write_data(weather_manager.Update_Weather(location.getLongitude(),locatio
            n.getLatitude(),getApplicationContext()));
                                        Bluetooth_Data data = new Bluetooth_Data();
                                        data.setGPS_speed(GPS_Speed);
                                        Write_data(data);
                                        Log.d("BluetoothManager", " 데이터가 전송됨");
                                     }
                                     Thread.sleep(1000);
                                 }catch (InterruptedException ire){
                                     ire.toString();
                                 }
                              }
                          }
                       }).start();

                   }


                   public Location getLastKnownLocation() {
                       List<String> providers = locationManager.getProviders(true);
                       Location location = null;
                       if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FIN
            E_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getApplica
            tionContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
            {
                          return null;
                       }
                       for (String provider : providers) {
                          Location l = locationManager.getLastKnownLocation(provider);
                          if (l == null){
                              continue;
                          }
                          if(location == null || l.getAccuracy() < location.getAccuracy()){
                              location = l;
                          }
                       }
                       return location;
                   }
                   synchronized public void ConnectDevice() {
                       BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
                       Log.d(tag, "cancelDiscovery");


                                                         - 460 -
   455   456   457   458   459   460   461   462   463   464   465