2011-08-09 23 views
5

मैं एक ऐप्लिकेशन है जो निम्नलिखित तरीके से एक शॉर्टकट बना है:शॉर्टकट एक गतिविधि शुरू करने के लिए

Intent shortcutIntent = new Intent(this, MYWEBVIEW.class); 
String fileHtml = trovaHtml(path); 
shortcutIntent.putExtra("appToLaunch", appId); 
shortcutIntent.putExtra("fileHtml", fileHtml); 
shortcutIntent.setAction(Intent.ACTION_VIEW); 

Intent addIntent = new Intent(); 
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, dirAppName); 
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
    Intent.ShortcutIconResource.fromContext(this, R.drawable.icon)); 
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
this.sendBroadcast(addIntent); 

मुझे पता है कि इस कोड को हटा दिया गया है लेकिन इसके बारे में भूल जाते हैं जाने .......

MYWEBVIEW मेरे ऐप की मुख्य गतिविधि नहीं है, एक ऐसा वेबदृश्य है जो ऑफ़लाइन HTML पृष्ठ खोलता है, और इस HTML फ़ाइल का पथ अतिरिक्त मान "fileHtml" के अंदर है।

जब मैं शॉर्टकट पर क्लिक करें मैं इस त्रुटि मिलती है:

08-08 14:15:37.907: ERROR/Launcher(165): Launcher does not have the permission to launch Intent { act=android.intent.action.VIEW flg=0x10000000 cmp=market.finestraprincipale/.MyAppActivity bnds=[3,217][77,296] (has extras) }. Make sure to create a MAIN intent-filter for the corresponding activity or use the exported attribute for this activity. tag=ShortcutInfo(title=myFile) intent=Intent { act=android.intent.action.VIEW flg=0x10000000 cmp=market.finestraprincipale/.MYWEBVIEW bnds=[3,217][77,296] (has extras) }

08-08 14:15:37.907: ERROR/Launcher(165): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.VIEW flg=0x10000000 cmp=market.finestraprincipale/.MYWEBVIEW bnds=[3,217][77,296] (has extras) } from ProcessRecord{405875c8 165:com.android.launcher/10026} (pid=165, uid=10026) requires null

मैं इन त्रुटियों को कैसे तय कर सकते हैं? क्या एक ही ऐप के दो उदाहरण बनाने का कोई तरीका है?

उदाहरण के लिए मैं अपने ऐप के अंदर हूं, मैं शॉर्टकट बनाता हूं, मैं होम बटन दबाता हूं ताकि एप्लिकेशन पृष्ठभूमि में जा सके और जब मैं शॉर्टकट पर क्लिक करता हूं तो मैं MYWEBVIEW गतिविधि शुरू करता हूं लेकिन मेरे ऐप के एक नए उदाहरण के अंदर ... .. इसलिए मूल रूप से मैं एक ही समय में अधिक वेबव्यू खोले जा सकते हैं।

उत्तर

7

क्या आपके पास manifest.xml में निम्नलिखित अनुमति है?

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 

यह भी देखें कि गतिविधि आप शुरू करने के लिए कोशिश कर रहे हैं निम्नलिखित लक्ष्य फ़िल्टर परिभाषित किया गया है:

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
</intent-filter> 
+0

हाँ मेरे पास है, मुझे शॉर्टकट बनाने में त्रुटि नहीं मिलती है, जब मैं शॉर्टकट पर क्लिक करता हूं तो मुझे यह मिलता है ...... शायद कारण यह एक ऐसी गतिविधि को कॉल कर रहा है जो मुख्य नहीं है ..... कम से कम मुझे लगता है .. – Sgotenks

+0

'अनुमति .INTERNET'' जोड़ने का प्रयास करें। यह हो सकता है कि शॉर्टकट ब्राउज़र लॉन्च करने का प्रयास कर रहा है (चूंकि आप एक यूआरएल खोलने की कोशिश कर रहे हैं)। क्या आप सुझाए गए अनुसार ''WebViewClient'' वर्ग को उप-वर्गीकृत कर रहे हैं [http://developer.android.com/resources/tutorials/views/hello-webview.html)? –

+0

हाँ, मैं दोनों कर रहा हूं .... अगर मैं मुख्य ऐप से MYWEBVIEW में अपने ऐप से सर्फ करता हूं, तो सब ठीक काम करता है, यह सही HTML पेज खोलता है ..... लेकिन अगर मैंने इसे शॉर्टकट से खोलने की कोशिश की मुझे वह त्रुटि मिलती है ...... क्या शॉर्टकट एक ऐसी गतिविधि खोल सकता है जो मुख्य नहीं है? क्योंकि अगर मैं अपने ऐप की मुख्य गतिविधि में शॉर्टकट का लक्ष्य बदलता हूं तो यह काम करता है :(लेकिन मुझे सीधे एक और – Sgotenks

0

मुझे लगता है कि आप अपने MYWEBVIEW गतिविधि के भीतर कार्रवाई जोड़ने के लिए मैनिफेस्ट फ़ाइल। मैं इसे आज़माता हूं और यह काम करता है।

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