2011-08-09 22 views
5

aşağıdaki şekilde bir kısayol oluşturmak bir uygulama vardır: Bu kod kullanımdan kaldırıldı biliyoruz ama bu konuda unutalımKısayol bir etkinlik başlatmak için

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 uygulamanızın ana faaliyeti değil, bir çevrimdışı html sayfası açan bir web görünümü ve bu html dosyasının yolunun değeri "fileHtml" değerinin içinde. i kısayol tıkladığınızda

ben bu hatayı alıyorum:

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

Ben bu hataları düzeltmek nasıl

? Aynı uygulamanın iki örneğini oluşturmanın bir yolu var mı?

Örneğin, benim uygulamamın içindeyim, bir kısayol oluşturuyorum, bu yüzden uygulama arka plana gideceğim ve kısayolu tıklattığımda MYWEBVIEW etkinliğini başlattığımda ancak uygulamamın yeni bir örneğinin içinde ... ..sadece temelde daha fazla web görüntüleme açabilirim.

cevap

7

manifest.xml'unuzda aşağıdaki izne sahip misiniz?

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

Ayrıca başlatmaya çalışıyorlar etkinlik aşağıdaki amaç filtresi tanımlı olduğunu görüyoruz:

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

Evet, kısayolu oluştururken hatayı almıyorum, kısayolu tıklıyorum, anladım ....... En azından sanırım .. – Sgotenks

+0

'' request.INTERNET'' eklemeyi deneyin. Kısayol, tarayıcıyı başlatmaya çalışıyor olabilir (bir URL'yi açmaya çalıştığınız için). Önerilen "WebViewClient" sınıfı alt sınıfını mı [burada] (http://developer.android.com/resources/tutorials/views/hello-webview.html)? –

+0

Evet, her ikisini de yapıyorum. Uygulamamı MYWEBVIEW ana etkinliğinden geçirirsem, her şey iyi çalışıyor, doğru html sayfasını açıyor ..... ama eğer kısayolu açmaya çalışırsam Bu hatayı alıyorum ...... ana yol olmayan bir etkinliği açabilir miyim? Çünkü kısayolun hedefini uygulamamın ana faaliyetine değiştirirsem işe yarar :(fakat başka bir tanesine gitmem gerek – Sgotenks

0

sana da MYWEBVIEW etkinliği içindeki eylemi eklemek zorunda düşünüyorum manifest dosyası. Bunu dene ve çalışıyor.

İlgili konular