2010-09-30 4 views
6

मैं एंड्रॉइड में अपनी गतिविधि में से एक के लिए डेस्कटॉप शॉर्टकट बनाने की कोशिश कर रहा हूं।शॉर्टकट लॉन्च करने में विफल: एप्लिकेशन आपके फोन पर स्थापित नहीं है

final Intent shortcutIntent = new Intent(Intent.ACTION_MAIN); 
    ComponentName name = new ComponentName(getPackageName(), ".MyActivity"); 
    shortcutIntent.setComponent(name); 

    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 


    final Intent intent = new Intent(); 
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 

    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "blabla"); 
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon); 

    intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    sendBroadcast(intent); 
    finish(); 

और मैं अपने गतिविधि के लिए मुख्य कार्रवाई कहा:: मैं कोड है कि हर tuto उदाहरण में काम करते हैं मैं पढ़ लिया है का उपयोग

<activity android:label="@string/app_name" android:name=".MyActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
     </intent-filter> 
    </activity> 

परिणाम है कि आवेदन शुरू नहीं करना चाहता है !

Logcat सब कुछ ठीक लग रहे हैं:

10-01 01:17:51.591: INFO/ActivityManager(2424): Starting activity: Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=my.package.name/.MyActivity bnds=[125,384][235,522] (has extras) } 

और होम ने मुझे बताया कि आवेदन स्थापित नहीं है।

कृपया मेरी मदद करें, मैं पूरी तरह से खो गया हूं और इस मुद्दे को हल करने की कोशिश करने में कुछ घंटे बिताता हूं और मुझे जो जानकारी मिल सकती है उसे पढ़ सकते हैं।

बहुत बहुत धन्यवाद!

उत्तर

9

इस प्रयास करें:

  1. <intent-filter>
  2. से छुटकारा पाने के ACTION_MAIN से छुटकारा पाने और सिर्फ new Intent(this, MyActivity.class)
  3. का उपयोग एंड्रॉयड जोड़ें: प्रकट
में अपने तत्व को निर्यात = "true"
+0

त्रुटि/लॉन्चर (12197): लांचर आशय शुरू करने के लिए अनुमति नहीं है {FLG = 0x10000000 सीएमपी = my.package.name/.MyActivity bnds = [125,534] [235,672] (एक्स्ट्रा कलाकार है)}। संबंधित गतिविधि के लिए मुख्य उद्देश्य-फ़िल्टर बनाना सुनिश्चित करें या इस गतिविधि के लिए निर्यात की गई विशेषता का उपयोग करें। 10-01 02: 51: 57.701: त्रुटि/लॉन्चर (12197): java.lang.SecurityException: अनुमति अस्वीकार: प्रारंभिक इरादा {flg = 0x10000000 cmp = my.package.name/.MyActivity bnds = [125,534] [235,672] (अतिरिक्त है)} ProcessRecord {485b9b38 12197: com.sec.android.app.twlauncher/10005} (pid = 12197, uid = 10005) के लिए शून्य –

+7

@ Profete162: 'android: exported =" true "जोड़ने का प्रयास करें मेनिफेस्ट में आपका '' तत्व। इरादा जोड़ते समय – CommonsWare

+1

सेम ठीक है।

9

यह तब हो सकता है जब आपने अपनी AndroidManifest.xml में दो बार घोषित किया है, पहले लॉन्चर के रूप में और फिर बस घोषित किया गया:

<activity android:name=".MyActivity" /> 
संबंधित मुद्दे

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