السماح بإدخال التطبيق فقط في حالة تمكين مزود موقع واحد على الأقل في Android

StackOverflow https://stackoverflow.com/questions/9493874

سؤال

في تطبيقي، يجب أن يكون لدى المستخدم موفر موقع واحد على الأقل ممكّن.من أجل معرفة ما إذا كان واحدا ممكّنا أستخدم:

isGpsLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
                .isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
                .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

الآن، قمت بإنشاء تنبيه نشاط بعدم تمكين أي شيء وإذا قام المستخدم بتحديد "تمكين نظام تحديد المواقع العالمي (GPS)"، فأنا أفتح خيارات نظام تحديد المواقع العالمي (GPS) بقصد ACTION_LOCATION_SOURCE_SETTINGS.

أريد (بعد اختيار المستخدم) التحقق مما إذا كان قد قام بتمكين واحد، والسماح له بالمتابعة فقط إذا قام بذلك.

لدي هذا الرمز في الزر "تمكين GPS"

showGpsOptions();
isGpsLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkLocationEnabled = ((LocationManager) getSystemService(LOCATION_SERVICE))
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (isGpsLocationEnabled || isNetworkLocationEnabled){
    Intent startIntent = new Intent(EnableLocationProviderActivity.this, SensingService.class);
    startService(startIntent);
} else {
    finish();
}

مشكلتي هي أن isGpsLocationEnabled وisNetworkLocationEnabled لا يتم تحديثهما أبدًا مع تحديد المستخدم في إعدادات الشبكة حيث يستمر الكود في تنفيذه بعد showGpsOptions() (أعلم أنه لا يمكنه حظر مؤشر ترابط واجهة المستخدم، ولكن كيف يمكنني تجاوز هذا الموقف)؟؟

هل هناك أي طريقة لتنفيذ التعليمات البرمجية بعد أن يختار المستخدم شيئًا ما في إعدادات الشبكة؟

شكرًا!غييرمو.

هل كانت مفيدة؟

المحلول

متى شاشة إعدادات تأتي أمام الخاص بك activity, ، بشكل منطقي ووفق المستندات، الخاص بك activity يكون paused وبعد ذلك عندما يكون مطلوبا الخاص بك activity يكون resumed...لذلك أعتقد أنه يجب عليك استخدام رمز التحقق onResume...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top