Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用kivy、pyjnius为android制作GPS应用程序?_Android_Python_Kivy - Fatal编程技术网

如何使用kivy、pyjnius为android制作GPS应用程序?

如何使用kivy、pyjnius为android制作GPS应用程序?,android,python,kivy,Android,Python,Kivy,我是KIVY、pyjnius和python android的新手。我需要为android制作一个简单的应用程序,显示GPS坐标。但是,正如我所说,我是新来的基维和pyforandroid。有人能给我举个例子,在简单的kivy标签小部件中显示我的坐标吗? 非常感谢 我试过做类似的事情,但是 package org.renpy.android; //import java.util.ArrayList; //import java.util.List; import android.lo

我是KIVY、pyjnius和python android的新手。我需要为android制作一个简单的应用程序,显示GPS坐标。但是,正如我所说,我是新来的基维和pyforandroid。有人能给我举个例子,在简单的kivy标签小部件中显示我的坐标吗? 非常感谢

我试过做类似的事情,但是

    package org.renpy.android;

//import java.util.ArrayList;
//import java.util.List;

import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.content.Context;
import android.os.Bundle;
import android.os.Looper;
import java.lang.Thread;
import android.app.Activity;

public class KivyGps {
    LocationManager lm;
    Thread gpsThread;
    public long minDistance = 1;
    public int  minTime = 1000;


   static class KivyLocationListener implements LocationListener {

    public Location lastLocation = new Location("Other");
    //private List<LocationListener> listeners = new ArrayList<LocationListener>();

    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub
        lastLocation = location;
        //updateListeners(location);
    }

    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub
    }

    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub
    }

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

        // TODO Auto-generated method stub
        return lastLocation;
    }

    }

    static public KivyLocationListener locationListener = new KivyLocationListener();
    public Thread init(final Activity currActivity) {

        gpsThread = new Thread( new Runnable() {

          public void run() {
            try {
                Looper.prepare();
                 lm = (LocationManager) currActivity.getSystemService( Context.LOCATION_SERVICE );
                 lm.requestLocationUpdates( LocationManager.GPS_PROVIDER, minTime, minDistance, locationListener );
                 Looper.loop();

                }
            catch ( Exception e ) {
                e.printStackTrace();
            }
          }

        } );
        return gpsThread;    
    }
    //gpsThread.start();

}

不久前,我做了一个在Kivy/pyjnius内访问GPS的演示:

看看源代码,一切都在里面。

Plyer是一个Python库,用于访问硬件/平台的功能

刚找到,所以我对它了解不多

文件:

资料来源:

在这个Kivy Github问题上找到它:

您现在可以使用Plyer:


它支持GPS。

您可以使用另一种替代方法,即Android模块,记住,在您的Android设备的Qpython3中尝试它,因为它具有必要的权限,还可以打开您的GPS位置。代码如下:

import android
droid = android.Android()
loc = droid.readLocation()
lattitude = loc.result['network']['latitude']
longitude = loc.result['network']['longitude']
print(lattitude, longitude )

有趣。我要看看!目前对Kivy中android集成的深度感到好奇
import android
droid = android.Android()
loc = droid.readLocation()
lattitude = loc.result['network']['latitude']
longitude = loc.result['network']['longitude']
print(lattitude, longitude )