यह उदाहरण दर्शाता है कि एंड्रॉइड कोटलिन पर अक्षांश और देशांतर से पूरा पता कैसे प्राप्त करें?
चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।
चरण 3 - निम्न कोड को src/MainActivity.kt में जोड़ें
<पूर्व>आयात android.content.Intentimport android.content.pm.PackageManagerimport android.location.Locationimport android.location.LocationManagerimport android.os.Bundleimport android.os.Handlerimport android.os.Messageimport android.provider.Settingsimport android.widget. Buttonimport android.widget.TextViewimport android.widget.Toastimport androidx.appcompat.app.AlertDialogimport androidx.appcompat.app.AppCompatActivityimport androidx.core.app.ActivityCompatimport androidx.core.content. लेटइनिट वर टीवी पता:टेक्स्ट व्यू लेटइनिट वर लोकेशन:लोकेशन लेटिनिट वर ऐप लोकेशन सर्विस:ऐपलोकेशन सर्विस ओवरराइड फन ऑनक्रिएट (सेव्ड इंस्टेंसस्टेट:बंडल?) id.tvAddress) appLocationService =AppLocationService (यह) btnShowAddress =findView ById(R.id.btnShowAddress) अगर (ContextCompat.checkSelfPermission(यह, Manifest.permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED) { if (ActivityCompat. shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_requestPermission.this.permission.ACCESS_FINE_FINE_LOCATION) , arrayOf (Manifest.permission.ACCESS_FINE_LOCATION), 1); } और { activityCompat.requestPermissions (यह, arrayOf (Manifest.permission.ACCESS_FINE_LOCATION), 1); } } btnShowAddress.setOnClickListener {स्थान =appLocationService.getLocation(LocationManager.GPS_PROVIDER)!! वैल अक्षांश =13.1000727 वैल लॉन्गिट्यूड =80.2126274 वैल लोकेशनएड्रेस =लोकेशनएड्रेस () locationAddress.getAddressFromLocation (अक्षांश, देशांतर, applicationContext, GeoCodeHandler() ) showSettingsAlert () } } निजी मजेदार शोसेटिंग्सअलर्ट () { वैल अलर्टडायलॉग =AlertDialog.Builder (यह) अलर्टडायलॉग setTitle("SETTINGS") AlertDialog.setMessage ("स्थान प्रदाता सक्षम करें! सेटिंग मेनू पर जाएं?") अलर्टDialog.setPositiveButton ("सेटिंग्स") { _, _ -> वैल इंटेंट =इंटेंट (सेटिंग्स.ACTION_LOCATION_SOURCE_SETTINGS) [email protected] (इरादा)} अलर्टडायलॉग.सेटनेगेटिवबटन ("रद्द करें") {संवाद, _ -> डायलॉग.कैंसल ()} अलर्टडिअलॉग.शो ()} आंतरिक आंतरिक वर्ग जियोकोडहैंडलर:हैंडलर () { ओवरराइड फन हैंडलमैसेज (संदेश:संदेश) { वैल लोकेशन एड्रेस :स्ट्रिंग स्थान पता =कब (message.what) { 1 -> {वैल बंडल =मेस sage.data बंडल.getString("address") } else -> null.toString() } tvAddress.text =locationAddress } } फन onRequestPermissionsResult (requestCode:Int, Permissions:Array, GrantResults:IntArray ) { कब ओवरराइड करें (requestCode) { 1 -> { अगर (grantResults.isNotEmpty() &&GrantResults[0] ===PackageManager.PERMISSION_GRANTED) { if ((ContextCompat.checkSelfPermission(this@MainActivity, Manifest.permission.ACCESS_FINE_LOCATION) ===PackageManager. PERMISSION_GRANTED)) { Toast.makeText (यह, "अनुमति दी गई", Toast.LENGTH_SHORT)। शो ()}} और { Toast.makeText (यह, "अनुमति अस्वीकृत", Toast.LENGTH_SHORT)। शो ()} वापसी}} }}पूर्व> चरण 4 - एक कोटलिन क्लास बनाएं और निम्न कोड को AppLocationService.kt में जोड़ें
उदाहरण
<पूर्व>आयात android.annotation.SuppressLintimport android.app.Serviceimport android.content.Contextimport android.content.Intentimport android.location.Locationimport android.location.LocationListenerimport android.location.LocationManagerimport android.os.Bundleimport android.os.IBinderओपन क्लास AppLocationService (संदर्भ:प्रसंग):सेवा (), स्थान लिस्टनर {निजी संस्करण स्थान प्रबंधक:स्थान प्रबंधक? =संदर्भ। getSystemService (संदर्भ। LOCATION_SERVICE) स्थान प्रबंधक के रूप में निजी देर से var स्थान:स्थान @SuppressLint ("MissingPermission") fun getLocation (प्रदाता:स्ट्रिंग?):स्थान? { अगर (स्थान प्रबंधक !!। प्रदाता सक्षम (प्रदाता)) { स्थान प्रबंधक !! लोकेशन } } रिटर्न नल } लोकेशन चेंज (स्थान:लोकेशन) पर फन को ओवरराइड करें {} फन ऑनप्रोवाइडर डिसेबल्ड (प्रदाता:स्ट्रिंग) {} ओवरराइड फन ऑनप्रोवाइडर इनेबल्ड (प्रदाता:स्ट्रिंग) {} ओवरराइड फन ऑन स्टेटस चेंज (प्रदाता:स्ट्रिंग, स्टेटस:इंट, एक्स्ट्रा:बंडल) {} फन ऑन बाइंड (arg0:इंटेंट) को ओवरराइड करें:IBinder? { वापसी शून्य } साथी वस्तु { निजी कॉन्स्टेबल वैल MIN_DISTANCE_FOR_UPDATE:लंबा =10 निजी कॉन्स्ट वैल MIN_TIME_FOR_UPDATE =1000 * 60 * 2.toLong() }}
चरण 5 - एक कोटलिन क्लास बनाएं और निम्नलिखित कोड को LocationAddress.kt में जोड़ें
उदाहरण
<पूर्व>आयात android.content.Contextimport android.location.Geocoderimport android.os.Bundleimport android.os.Handlerimport android.os.Messageimport android.util.Logimport java.io.IOExceptionimport java.util.*class LocationAddress { निजी वैल टैग ="LocationAddress" fun getAddressFromLocation (अक्षांश:दोहरा, देशांतर:दोहरा, संदर्भ:प्रसंग, हैंडलर:हैंडलर) {वैल थ्रेड =ऑब्जेक्ट:थ्रेड () {ओवरराइड फन रन () {वैल जियोकोडर =जियोकोडर (संदर्भ, लोकेल। ) ) var परिणाम:String =null.toString() try { val addressList =geoCoder.getFromLocation (अक्षांश, देशांतर, 1 ) if ((addressList !=null &&addressList.size> 0)) { val address =addressList.get( 0) वैल एसबी =स्ट्रिंगबिल्डर () के लिए (मैं 0 में पता तक। maxAddressLineIndex) { sb.append(address.getAddressLi ne(i)).append("\n") } sb.append(address.locality).append("\n") sb.append(address.postalCode).append("\n") sb.append( address.countryName) result =sb.toString() }} catch (e:IOException) { Log.e(tag, "Unable Connect to GeoCoder", e) } अंत में {वैल मैसेज =Message.obtain() message.target =हैंडलर संदेश। क्या =1 वैल बंडल =बंडल () परिणाम =("अक्षांश:" + अक्षांश + "देशांतर:" + देशांतर + "\n\nपता:\n" + परिणाम) बंडल।पुटस्ट्रिंग ("पता", परिणाम ) संदेश.डेटा =बंडल संदेश.sendToTarget() } } } thread.start() }}चरण 6 - निम्नलिखित कोड को androidManifest.xml में जोड़ें
<उपयोग-अनुमति android:name="android.permission.ACCESS_FINE_LOCATION"/> <एप्लिकेशन android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android :roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <गतिविधि android:name=".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name=" android.intent.action.MAIN" /> <श्रेणी android:name="android.intent.category.LAUNCHER" />
आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक को खोलें और रन आइकन पर क्लिक करें टूलबार से । एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा