यह उदाहरण दर्शाता है कि एंड्रॉइड में रनटाइम अनुमति के साथ बाहरी भंडारण में एक txt फ़ाइल कैसे बनाई जाती है।
चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।
<एडिटटेक्स्ट एंड्रॉइड:आईडी ="@ + आईडी /एंटरटेक्स्ट" एंड्रॉइड:संकेत ="कृपया यहां टेक्स्ट दर्ज करें" एंड्रॉइड:लेआउट_विड्थ ="मैच_पेरेंट" एंड्रॉइड:लेआउट_हाइट ="रैप_कंटेंट" /> <बटन एंड्रॉइड:आईडी ="@ + आईडी / सेव" एंड्रॉइड:टेक्स्ट ="सेव" एंड्रॉइड :layout_width ="wrap_content" android:layout_height ="wrap_content" />
उपरोक्त कोड में, हमने एडिट टेक्स्ट और बटन लिया है। जब उपयोगकर्ता बटन पर क्लिक करता है, तो यह संपादन टेक्स्ट से डेटा लेगा और बाहरी संग्रहण में संग्रहीत करेगा।
चरण 3 - निम्न कोड को src/MainActivity.java
में जोड़ें <पूर्व>पैकेज com.example.andy.myapplication;import android.content.pm.PackageManager;import android.os.Build;import android.os.Bundle;import android.os.Environment;import android.support.v4.app .ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget .EditText; आयात android.widget.Toast; आयात java.io.File; आयात java.io.FileOutputStream; आयात java.io.IOException; सार्वजनिक वर्ग MainActivity AppCompatActivity का विस्तार करता है {निजी स्थिर अंतिम int PERMISSION_REQUEST_CODE =100; बटन बचाओ; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); अंतिम संपादन टेक्स्ट एंटरटेक्स्ट =findViewById (R.id.enterText); सहेजें =findViewById (R.id.save); save.setOnClickListener (नया दृश्य। OnClickListener () {@ ओवरराइड सार्वजनिक शून्य पर क्लिक करें (देखें v) {अगर (! दर्ज करें। getText ()। toString ()। isEmpty ()) {स्ट्रिंग स्थिति =पर्यावरण। getExternalStorageState (); अगर ( Environment.MEDIA_MOUNTED.equals(state)) {if (Build.VERSION.SDK_INT> =23) {if (checkPermission ()) {फ़ाइल sdcard =Environment.getExternalStorageDirectory (); फ़ाइल dir =नई फ़ाइल (sdcard.getAbsolutePath() + "/ टेक्स्ट/"); dir.mkdir (); फ़ाइल फ़ाइल =नई फ़ाइल (डीआईआर, "नमूना। txt"); फ़ाइलऑटपुटस्ट्रीम ओएस =शून्य; कोशिश करें {ओएस =नया फ़ाइलऑटपुटस्ट्रीम (फ़ाइल); os.write (enterText.getText) ().toString().getBytes()); os.close(); } पकड़ें (IOException e) { e.printStack ट्रेस (); }} और {अनुरोध अनुमति (); // अनुमति के लिए कोड}} और {फ़ाइल sdcard =Environment.getExternalStorageDirectory (); फ़ाइल डीआईआर =नई फ़ाइल (sdcard.getAbsolutePath () + "/ टेक्स्ट /"); dir.mkdir (); फ़ाइल फ़ाइल =नई फ़ाइल (डीआईआर, "नमूना। txt"); फ़ाइलऑटपुटस्ट्रीम ओएस =शून्य; कोशिश करें {ओएस =नया फ़ाइलऑटपुटस्ट्रीम (फ़ाइल); os.write(enterText.getText().toString().getBytes()); ओएस बंद (); } कैच (IOException e) { e.printStackTrace (); } } } } } }); } निजी बूलियन चेकप्रमिशन () {int परिणाम =ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE); अगर (परिणाम ==पैकेजमैनेजर। PERMISSION_GRANTED) {वापसी सच है; } और { झूठी वापसी; } } निजी शून्य अनुरोध अनुमति () { अगर (ActivityCompat. shouldShowRequestPermissionRationale(MainActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) { Toast.makeText(MainActivity.this, "बाहरी संग्रहण अनुमति लिखें हमें फ़ाइलें बनाने की अनुमति देता है। कृपया इसकी अनुमति दें। ऐप सेटिंग में अनुमति।", Toast.LENGTH_LONG).show(); } और { ActivityCompat.requestPermissions(MainActivity.this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE); } } @Override सार्वजनिक शून्य onRequestPermissionsResult(int requestCode, String अनुमतियाँ[], int[] GrantResults) { स्विच (requestCode) {केस PERMISSION_REQUEST_CODE:if (grantResults.length> 0 &&GrantResults[0] ==PackageManager.PERMISSION_GRANTED) { लॉग इन करें .e ("मान", "अनुमति दी गई, अब आप स्थानीय ड्राइव का उपयोग कर सकते हैं।"); } और { Log.e ("मान", "अनुमति अस्वीकृत, आप स्थानीय ड्राइव का उपयोग नहीं कर सकते।"); } तोड़ना; } }}चरण 4 - निम्नलिखित कोड को मेनिफेस्ट.एक्सएमएल में जोड़ें
<उपयोग-अनुमति android:name ="android.permission.WRITE_EXTERNAL_STORAGE"/> <गतिविधि एंड्रॉइड:नाम =".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name ="android.intent.action.MAIN" /> <श्रेणी android:name ="android.intent.category.LAUNCHER" /> इरादा- फ़िल्टर> गतिविधि> एप्लिकेशन>मैनिफ़ेस्ट>पूर्व> आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और टूलबार से रन आइकन पर क्लिक करें। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -
उपरोक्त परिणाम में, हमने कुछ टेक्स्ट जोड़ा है और नीचे दिखाए अनुसार सेव बटन पर क्लिक किया है -
पहली बार, यह बाहरी संग्रहण तक पहुंचने के लिए रनटाइम अनुमति मांगेगा। उपरोक्त परिणाम को सत्यापित करने के लिए, अपना बाहरी संग्रहण खोलें और टेक्स्ट फ़ोल्डर की जांच करें जैसा कि नीचे दिखाया गया है -