Android GPS使用php在Mysql中保存当前位置

Posted

技术标签:

【中文标题】Android GPS使用php在Mysql中保存当前位置【英文标题】:Android GPS saving current location in Mysql with php 【发布时间】:2017-04-17 13:51:20 【问题描述】:

我有这段代码,它向我显示了Toast 在一个时间间隔内用户的**纬度**和**经度**,但我需要将此信息保存在mysql 中每次系统更新位置。我真的需要这段代码来完成一项工作。

MainActivity.java

    package com.example.quantide.gps_teste;
    import android.Manifest;
    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.provider.Settings;
    import android.support.v4.app.ActivityCompat;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.Toast;

    public class MainActivity extends AppCompatActivity implements LocationListener 

    private LocationManager locationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) 

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


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

    

    @Override
    public void onLocationChanged(Location location) 

        String msg = "New Latitude: " + location.getLatitude()
                + "New Longitude: " + location.getLongitude();

        Toast.makeText(getBaseContext(), msg, Toast.LENGTH_LONG).show();
    

    @Override
    public void onProviderDisabled(String provider) 

        Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        startActivity(intent);
        Toast.makeText(getBaseContext(), "Gps is turned off!! ",
                Toast.LENGTH_SHORT).show();
    

    @Override
    public void onProviderEnabled(String provider) 

        Toast.makeText(getBaseContext(), "Gps is turned on!! ",
                Toast.LENGTH_SHORT).show();
    

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

    

上传.php

  <?php

$latitude = $_POST['lati'];
$longitude= $_POST['longi'];

$up = mysql_query("UPDATE gps SET lati = $latitude, longi = $longitude");

?>

【问题讨论】:

欢迎来到 Stack Overflow。我们不是来为你做你的工作,我们是来帮忙的。请发布您在 PHP 中尝试过的代码,我们将尝试为您指明正确的方向。 MySQL Workbench 可以为您提供 PHP 所需的 MySQL 命令。然后,您只需要发布这些值并使用它们。 好的,我按照你的建议添加了我的 php 代码。 @apmartin1991 我最大的困难在java部分。 @apmartin1991 发布将其发送到服务器的android代码 警告:如果您只是学习 PHP,请不要使用mysql_query 接口。它是如此可怕和危险,以至于它在 PHP 7 中被删除。像 PDO is not hard to learn 这样的替代品和像 PHP The Right Way 这样的指南解释了最佳实践。你的用户参数不是properly escaped,有SQL injection bugs可以被利用。 【参考方案1】:

创建一个后端并使用您的 android 应用将值发布到它。然后,使用 MySQL 命令,您可以将其保存到数据库中。

更新

单击here 以逐步了解如何创建后端。您还将找到有关如何将数据发布到服务器的信息。如果您需要一些额外的参考,您可以访问this site。 然后,您可以访问this site 获取有关如何使用 java 直接使用 mySQL 数据库的教程。

如果您还需要什么,请随时询问。如果您对答案感到满意,请将其标记为已接受。希望我有所帮助:D

【讨论】:

我需要一些代码示例来说明如何从共同签名发送到我的 Web 服务器。这就是问题,我不知道如何执行这部分代码,我尝试了一些但没有成功。 @Rippr

以上是关于Android GPS使用php在Mysql中保存当前位置的主要内容,如果未能解决你的问题,请参考以下文章

使用 json/php 的 Android Studio 简单通知

android打开网页,并保存当前位置源码

将数据发送到 php 脚本并通过 android 保存在 mysql 表中时,加上符号更改为空格

Android / PHP:将输入数据从android保存到MySQL后显示“数据成功保存”

可以使用 Google API 通过 android 移动 gps 跟踪位置吗?

获取 GPS 坐标并保存为文本文件