簡體   English   中英

獲取位置坐標的更好方法

[英]Better approach for getting the location coordinates

我已經通過調用 requestLocationUpdates 成功地獲得了當前的 GPS 坐標,如下所示:

Criteria criteria = new Criteria();
    provider = locationManager.getBestProvider(criteria, false);

if( provider != null){
        locationManager.requestLocationUpdates(provider, 400, 1, this);
    }

我的“onLocationChanged”正在根據我的標准更新這個位置。

@Override
public void onLocationChanged(Location location) {
    Log.d(TAG, "location is" + location);
    double lat =  (location.getLatitude());
    double lng =  (location.getLongitude());
    String coordinates = (String.valueOf(lat) + "," + String.valueOf(lng));
    longitudeField.setText(coordinates);
}

現在在我的應用程序中,我想將緯度和經度與圖像和其他一些信息一起傳遞給 firebase。

所以我有另一種方法,它從捕獲的圖像中獲取 url,並將圖像與兩個當前日期和時間的字符串一起發送到 firebase。

private void uploadFile() {
    final String dateStamp = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
    final String timeStamp = new SimpleDateFormat("HH:mm:ss").format(new Date());

    if (mImageUri != null) {
        StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()
                + "." + getFileExtension(mImageUri));

        mUploadTask = fileReference.putFile(mImageUri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        Handler handler = new Handler();
                        handler.postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                mProgressBar.setProgress(0);
                            }
                        }, 500);


                        Toast.makeText(MainActivity.this, "Upload successful", Toast.LENGTH_LONG).show();
                        Upload upload = new Upload(
                                taskSnapshot.getDownloadUrl().toString(), timeStamp, dateStamp);


                        String uploadId = mDatabaseRef.push().getKey();
                        mDatabaseRef.child(dateStamp).child(uploadId).setValue(upload);


                    }
                })

題:

以 String 的形式獲取緯度和經度的方法如何,以便我可以在我的方法中使用它來將數據傳遞給 firebase?

我會推薦以下方法:

  • 全局跟蹤當前經緯度(無論是通過成員變量,還是通過使用共享首選項)。
  • 在您的 uploadFile 方法中訪問這些以發送它們。

對我來說似乎很簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM