मैंने यहां सभी समान प्रश्नों की समीक्षा की है, लेकिन मैं अपने जीवन के लिए यह नहीं समझ सकता कि मैं क्या गलत कर रहा हूं।फ़ाइल और एमआईएमई प्रकार के लिए एक इरादा लॉन्च करना?
मैंने एक ऐसा एप्लीकेशन लिखा है जो विभिन्न फाइलों को लॉन्च करने का प्रयास करता है, एक फ़ाइल ब्राउज़र की तरह। जब कोई फ़ाइल क्लिक की जाती है, तो यह प्रोग्राम को इसके संबंधित एमआईएमई प्रकार के आधार पर लॉन्च करने का प्रयास करता है या यह "लॉन्च करने के लिए एप्लिकेशन चुनें" संवाद प्रस्तुत करता है।
यहाँ कोड मैं शुरू करने के लिए उपयोग कर रहा हूँ है:
File file = new File(app.mediaPath() + "/" +_mediaFiles.get(position));
Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW);
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
myIntent.setDataAndType(Uri.fromFile(file),mimetype);
startActivity(myIntent);
यह विफल रहता है और त्रुटि उत्पन्न: अगर मैं उदाहरण के लिए OI फ़ाइल प्रबंधक स्थापित अब
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///file:/mnt/sdcard/roms/nes/Baseball_simulator.nes }
, यह इस के बजाय खोलता है त्रुटि फेंक दी जा रही है, और फिर यदि मैं उसी फ़ाइल को उसमें से क्लिक करता हूं, तो यह अनुमोदित संवाद लॉन्च करता है।
मैंने देखा है कि उस विशेष फ़ाइल के लिए एमआईएमई प्रकार विफल रहता है, लेकिन अन्य माइम प्रकार .zip
वापस मूल्य मानते हैं।
क्या मुझे कुछ याद आ रहा है जब MIME प्रकार एक संवाद को कॉल करने के लिए शून्य है जो उपयोगकर्ता को चुनने देता है?
मैंने ऐप लॉन्च करने के अन्य बदलावों की कोशिश की है, जिसमें एमआईएमई प्रकार सेट नहीं किया जा रहा है और केवल .setData
का उपयोग करके कोई सफलता नहीं है।
जिस क्रिया को मैं करना चाहता हूं वह है, उपयोगकर्ता एक फ़ाइल पर क्लिक करता है, अगर यह ऐप लॉन्च करने वाले एप्लिकेशन से जुड़ा हुआ है, यदि नहीं, तो उपयोगकर्ता को ऐप्स की सूची के साथ "पूर्ण कार्रवाई का उपयोग" संवाद मिलता है।
किसी भी सलाह के लिए धन्यवाद।
mimetype स्ट्रिंग में क्या आ रहा है ?? इसे पेस्ट करें –
ऐसा लगता है कि यह एक ऐसी फ़ाइल है जिसमें एक संबंधित फ़ाइल है, यह सही एमआईएम प्रकार है, लेकिन अगर ऐसा कुछ है जो किसी ऐप से बंधे नहीं है तो यह शून्य के माध्यम से आता है .. – stonedonkey