我是KIVY,pyjnius和
python–
android的新手.我需要为
Android制作简单的应用程序,它显示GPS坐标.但是,正如我所说,我是kivy和pyforandroid的新手.有人可以展示/给我示例,它在简单的kivy-label-widget中显示我的坐标吗?
非常感谢!
非常感谢!
我试过这样做但是…
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(); }
在python中
from jnius import autoclass LocationListener = autoclass('android.location.LocationListener') LocationManager = autoclass('android.location.LocationManager') LocationProvider = autoclass('android.location.LocationProvider') Location = autoclass('android.location.Location') Looper = autoclass('android.os.Looper') Context = autoclass('android.content.Context') KivyGps = autoclass('org.renpy.android.KivyGps') currentActivity = cast('android.app.Activity',PythonActivity.mActivity) lm = currentActivity.getSystemService( Context.LOCATION_SERVICE) if lm.isProviderEnabled( LocationManager.GPS_PROVIDER ): print 'CON GPS' else: print 'SIN GPS' lps = lm.getAllProviders() for lp in lps.toArray(): print lp #Arreglar problema de derechos ACCESS_FINE_LOCATION en Kivy Launcher lp = lm.getProvider('gps') ll = KivyGps.locationListener kgps = KivyGps() gpsThread = kgps.init( currentActivity ) gpsThread.start() loc = ll.getCurrentLocation() if loc: print loc.getLatitude() print loc.getLongitude()
解决方法
我之前做过一次在Kivy / pyjnius内访问GPS的演示:
https://github.com/tito/android-demo
看一下源代码,一切都在其中.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。