Как сделать GPS-приложение для android с помощью kivy, pyjnius?

Im новый в KIVY, pyjnius и pythonandroid. Мне нужно сделать простое приложение для Android, которое отображает GPS-координаты. Но, как я уже сказал, я новичок в киви и pyforandroid. Может ли кто-нибудь показать / дать мне пример, который показывает мои координаты в простой виджет-киви-ярлык? Большое спасибо!

Я пытался сделать что-то подобное, но …

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 - базовое приложение имеет странное выравнивание
  • Kivy: доступ к методу в другом классе
  • Python + kivy + SQLite: как использовать их вместе
  • Как можно использовать глупый или наглядный вид из киви?
  • Kivy: получать идентификаторы виджетов и получать доступ к виджетам по уникальному свойству
  • Файл python / kivy .kv не читается
  • Использование класса ObjectProperty
  • 3 Solutions collect form web for “Как сделать GPS-приложение для android с помощью kivy, pyjnius?”

    Недавно я сделал демонстрацию доступа к GPS в Kivy / pyjnius:

    https://github.com/tito/android-demo

    Посмотрите на исходный код, все в нем.

    Теперь вы можете использовать Plyer: http://github.com/kivy/plyer .

    Он поддерживает GPS.

    Plyer – это библиотека Python для доступа к функциям вашего оборудования / платформ.

    Просто нашел это, поэтому я не знаю много об этом.

    Документация:

    https://plyer.readthedocs.org/en/latest/

    Источник:

    https://github.com/kivy/plyer

    Найденный в этом вопросе Киви Гитуба:

    https://github.com/kivy/kivy/issues/994

    Interesting Posts

    Почему подача stdin на subprocess.Popen вызывает то, что записывается в stdout для изменения?

    Существует ли MTA (агент передачи почты Python)

    Как импортировать пространство имен / перечисление объектов COM в Python?

    Python: обновить сводные таблицы на рабочем листе

    Код Numba медленнее, чем чистый питон

    Python for loop пропускает любое другое значение

    Как удалить повторяющиеся элементы в векторе, аналогично 'set' в Python

    Сельдерей с RabbitMQ: AttributeError: объект 'DisabledBackend' не имеет атрибута '_get_task_meta_for'

    Загрузка измененного изображения на S3

    Линейная регрессия в NumPy с очень большими матрицами – как сэкономить память?

    Список смежности и матрица смежности в Python

    Невозможно запустить пользовательскую управляемую виртуальную машину Google App Engine: – должна быть задана ошибка в пользовательской точке

    Как перейти к новой строке в Python Shell?

    Настройка среды разработки Python & OpenERP?

    маскировать только в том случае, когда последовательные nans превышают x

    Python - лучший язык программирования в мире.