android - करन - मैं अपने यूआरएल से एसडी कार्ड में एक छवि कैसे स्थानांतरित करूं?




मेमोरी फाइल डाउनलोड (2)

Android डेवलपर के ब्लॉग पर नवीनतम पोस्ट में एक उत्कृष्ट उदाहरण मिल सकता है:

static Bitmap downloadBitmap(String url) {
    final AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
    final HttpGet getRequest = new HttpGet(url);

    try {
        HttpResponse response = client.execute(getRequest);
        final int statusCode = response.getStatusLine().getStatusCode();
        if (statusCode != HttpStatus.SC_OK) { 
            Log.w("ImageDownloader", "Error " + statusCode + 
               " while retrieving bitmap from " + url); 
            return null;
        }

        final HttpEntity entity = response.getEntity();
        if (entity != null) {
            InputStream inputStream = null;
            try {
                inputStream = entity.getContent(); 
                final Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                return bitmap;
            } finally {
                if (inputStream != null) {
                    inputStream.close();  
                }
                entity.consumeContent();
            }
        }
    } catch (Exception e) {
        // Could provide a more explicit error message for IOException or
        // IllegalStateException
        getRequest.abort();
        Log.w("ImageDownloader", "Error while retrieving bitmap from " + url,
           e.toString());
    } finally {
        if (client != null) {
            client.close();
        }
    }
    return null;
}

मैं एक छवि को एसडी कार्ड में कैसे सहेज सकता हूं जिसे मैं छवि के यूआरएल से पुनर्प्राप्त करता हूं?


सबसे पहले आपको यह सुनिश्चित करना होगा कि आपके एप्लिकेशन को एसडीकार्ड को लिखने की अनुमति है। ऐसा करने के लिए आपको अपने अनुप्रयोग मेनिफेस्ट फ़ाइल में उपयोग की अनुमति बाहरी संग्रहण को जोड़ने की आवश्यकता है। एंड्रॉइड अनुमतियां सेट करना देखें

फिर आप एसडीकार्ड पर एक फाइल में यूआरएल डाउनलोड कर सकते हैं। एक आसान तरीका है:

URL url = new URL ("file://some/path/anImage.png");
InputStream input = url.openStream();
try {
    //The sdcard directory e.g. '/sdcard' can be used directly, or 
    //more safely abstracted with getExternalStorageDirectory()
    File storagePath = Environment.getExternalStorageDirectory();
    OutputStream output = new FileOutputStream (new File(storagePath,"myImage.png"));
    try {
        byte[] buffer = new byte[aReasonableSize];
        int bytesRead = 0;
        while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) {
            output.write(buffer, 0, bytesRead);
        }
    } finally {
        output.close();
    }
} finally {
    input.close();
}

संपादित करें: मैनिफेस्ट में अनुमति दें

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />




android-sdcard