2013-07-27 7 views
15

मेरे पास एंड्रॉइड पर एक ऐप है जो क्लाउड स्टोरेज जैसे ड्रॉपबॉक्स का उपयोग करके कुछ फ़ाइल साझा करता है। साझा करना शुरू करने के लिए मैंने android.intent.action.SEND फेंक दिया। दिखाए गए सूची में मुझे Google ड्राइव ऐप (पहले इंस्टॉल किया गया) दिखाई देता है, इसलिए मैं फ़ाइल को भेजने की कोशिश करता हूं - यह ठीक काम करता है, फ़ाइल ड्राइव सूची में दिखाई देती है।Google ड्राइव GET_CONTENT इरादा पढ़ने की फ़ाइल

फिर, किसी अन्य डिवाइस पर मैं इस फ़ाइल को पढ़ना चाहता हूं। मैंने android.intent.action.GET_CONTENT इरादा फेंक दिया, ड्राइव का चयन करें और फिर फ़ाइल को कैसे प्राप्त करें, यह नहीं पता। मुझे उरी कुछ ऐसा मिलता है:

content://com.google.android.apps.docs.files/exposed_content/6jn9cnzdJbDywpza%2BlW3aA%3D%3D%0A%3BRV%2FaV94o%2FCcW4HGBYArtwOdHqt%2BrsYO4WmHcs6QWSVwp%2FXogkRAgit7prTnfp00a%0A 

जो मुझे नहीं पता कि भौतिक फ़ाइल पथ में कैसे परिवर्तित किया जाए। मैं इससे फाइल सामग्री कैसे प्राप्त कर सकता हूं?

मैंने सामग्री प्रदाता के आसपास खेला और फ़ाइल का नाम प्राप्त कर सकते हैं, लेकिन पूरा पथ या कुछ भी नहीं।

ड्रॉपबॉक्स के लिए मुझे file:// शैली यूरी, सीधे और सरल मिलती है, अच्छी तरह से काम करती है।

उत्तर

5

यह आप uri सामग्री प्रदाता की है जो आप ContentResolver साथ उपयोग कर सकते हैं, इस तरह के रूप भेज रहा है उदाहरण के लिए:

getContentResolver().query(Uri contentUri, String[] projection, String selection, String[] selectionArgs, String sortOrder); 

संपादित करें: वास्तविक पथ नाम हो रही है के लिए समाधान

Android: Getting a file URI from a content URI?

नीचे प्रदान का उपयोग करें
+0

हाँ, लेकिन मुझे केवल फ़ाइल का नाम मिल सकता है, लेकिन इसका मार्ग नहीं। – khusrav

+0

http://stackoverflow.com/questions/5657411/android-getting-a-file-uri-from-a-content-uri एक उदाहरण प्रदान करता है कि आपके प्रश्न के मामले में ऐसा कैसे करें। –

+0

दिलचस्प, धन्यवाद, मुझे – khusrav

2

मुझे भी एक ही समस्या का सामना करना पड़ रहा था। मैंने Google ड्राइव फ़ाइल से फ़ाइल पथ प्राप्त करने के लिए कोड का पालन किया। यह स्काईडाइव के लिए और ड्रॉपबॉक्स के लिए भी काम करता है।

String filePath = null; 
Uri _uri = data.getData(); 
Log.d("", "URI = " + _uri);          
if(_uri != null && "content".equals(_uri.getScheme())) { 
    Cursor cursor = this.getContentResolver().query(_uri, new String[] { android.provider.MediaStore.Files.FileColumns.DATA }, null, null, null); 
    cursor.moveToFirst(); 
    filePath = cursor.getString(0); 
    cursor.close(); 
} else { 
    filePath = _uri.getPath(); 
} 
Log.d("", "Chosen path = " + filePath); 

मैं फ़ाइल चुनने के इरादे का उपयोग कर रहा हूं। फ़ाइल चुनने के लिए मेरा कोड यहां दिया गया है।

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
String strType = "*/*"; 
intent.setDataAndType(Uri.parse(dir.getAbsolutePath()), strType); 
startActivityForResult(intent, PICKFILE_RESULT_CODE); 

मेरा कोड ठीक काम करता है और जब मुझे आंतरिक या बाहरी मेमोरी से फ़ाइल मिलती है। मैं उसी कोड के साथ Google ड्राइव से फ़ाइल प्राप्त करना चाहता हूं।

+1

क्या आपको Google ड्राइव से डाउनलोड करने का कोई समस्या मिली? –

+0

मूल फ़ाइल पथ प्राप्त करने में सक्षम नहीं है। – Madhu

+0

जहांगीर अहमद डीआईआर क्या है? फ़ाइल को चुनने के लिए अपने कोड स्निपसेट में – Radoslav

संबंधित मुद्दे