पहली नजर बातें जीपीएस निर्देशांक प्राप्त करने के लिए से सरल लग रहा है (स्यूडोकोड):वास्तुकला आधारित अनुप्रयोग
private void onStart() {
res = ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION);
if (res != PackageManager.PERMISSION_GRANTED) {
requestPermissions();
} else {
startGps();
}
}
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
if (all_ok)
startGps();
}
private void startGps() {
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {...};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
लेकिन यह कैसे async ईवेंट प्रबंधित करने के:
क्या होगा अगर बाद
locationManager.requestLocationUpdates
उपयोगकर्ता रोकें और एप्लिकेशन को फिर से शुरू करें,1.1 क्या मैं फिर से जीपीएस डेटा प्राप्त करने के लिए
locationManager.requestLocationUpdates
पर कॉल करूं?1.2 यदि उपयोगकर्ता मेरे ऐप को फिर से शुरू करने के बाद जीपीएस को निष्क्रिय करता है, तो मुझे
onProviderDisabled
ईवेंट प्राप्त होता है?locationManager.requestLocationUpdates
कॉल के बाद होने पर ACCESS_FINE_LOCATION अनुमति के रनटाइम को कैसे रद्द किया जाए? रद्द करने के बाद क्या हो रहा है, क्या एंड्रॉइड मुझेonStatusChanged
याonProviderDisabled
के माध्यम से रिपोर्ट करता है?मैंने सुना है कि नए एंड्रॉयड स्क्रीन पर कई विंडो की अनुमति, क्या "प्रणाली वरीयताएँ" के लिए एक और, मेरे ऐप पर होता है अगर एक खिड़की से संबंधित होता है, और उपयोगकर्ता के बिना अपने ऐप के रोकें/फिर से शुरू ACCESS_FINE_LOCATION वापस ले?
असल में अनुरोध में मेरी कोड लगभग सभी कि में अपने लिंक, कैसे उस के बाद चीजों को संभाल करने के बारे में प्रश्न द्वारा प्रदान की है। – user1244932