2013-06-04 8 views
7

मैं KIVY, पायजनियस और पायथन-एंड्रॉइड में नया हूं। मुझे एंड्रॉइड के लिए सरल ऐप बनाना होगा, जो जीपीएस निर्देशांक दिखाता है। लेकिन, जैसा कि मैंने कहा, मैं kivy और pyforandroid में नया हूँ। क्या कोई मुझे उदाहरण दिखा सकता है/दे सकता है, जो मेरे निर्देशांक को सरल किवी-लेबल-विजेट में दिखाता है? बहुत बहुत धन्यवाद!Kivy, pyjnius का उपयोग कर एंड्रॉइड के लिए जीपीएस ऐप कैसे बनाया जाए?

मैं कुछ इस तरह करने की कोशिश की ve लेकिन ...

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(); 

} 

अजगर में

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() 

उत्तर

11

मैंने किया था थोड़ी देर पहले Kivy/pyjnius भीतर GPS एक्सेस का एक डेमो:

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

स्रोत कोड देखें, सबकुछ इसमें है।

+0

दिलचस्प। मैं इसे देख लूँगा! वर्तमान में किवी में एंड्रॉइड एकीकरण की गहराई से उत्सुक है – swdev

3

प्लीयर आपके हार्डवेयर/प्लेटफॉर्म की सुविधाओं तक पहुंचने के लिए एक पायथन लाइब्रेरी है।

बस इसे मिला, इसलिए मुझे इसके बारे में बहुत कुछ पता नहीं है।

प्रलेखन:

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

स्रोत:

https://github.com/kivy/plyer

इस Kivy Github मुद्दे पर यह मिला: अब

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

संबंधित मुद्दे