2011-06-23 18 views
9

Bildirimde birkaç farklı etkinlik tanımladığım bir Android uygulamasına sahibim. Bu aktivitelerden bazılarının kullandıkları amaç filtreleri (ACTION_PICK gibi) var. Bu etkinlikler, amaç filtreleri nedeniyle, diğer uygulamalar bir ACTION_PICK işlemek için bir etkinlik istediğinde ortaya çıkar. Bunu engellemenin bir yolu var mı, bu yüzden faaliyetlerim diğer uygulamalara açık değil mi? Zaten çalışmamda android: exported = "false" ayarlamayı denedim, ancak bu hiçbir şey yapmadı.Diğer android uygulamaların etkinliklerime erişmesini nasıl engellerim

+0

ayy, sadece burada cevap buldu: http://stackoverflow.com/questions/1571615/preventing-apps-from-invoking-my-activity/1571632#1571632 silmek için herhangi bir yolu var mı bu soru? – Dominic

+0

Sorunuzu, yanıt olarak gösterdiğinize ait bir kopya olarak kapatmak için oy verdim. Ancak kapatmak için 3 oy daha alacak. – Squonk

+1

Aslında, yayınlanan mesajın cevabı çok daha kısa, belki de bunu açık tutmalıyız. – Dominic

cevap

13

Sen gerekir:
*
(imzanızı sahip uygulamalar için geçerlidir) izni tanımlamak * Başvurunuz
* Eğer korumalı istediğiniz faaliyetler için bu izni gerektiren tanımlı izni kullandığı tanımlar. (Ana lansman faaliyetiniz için buna gerek duymamaya dikkat edin).

<!-- define a permission --> 
<permission 
    android:protectionLevel="signature" 
    android:name="com.mypackage.MYPERMISSION"/> 

<uses-permission android:name="com.mypackage.MYPERMISSION" /> 

<!-- define an activity which can only be started through internal code --> 
<activity android:name="..." 
      android:permission="com.mypackage.MYPERMISSION" > 
    ... 
</activity> 
+0

Tamlık için, izin ve kullanım izni etiketleri manifest etiketine girer, ancak uygulama etiketinin dışına çıkar ve etkinlik etiketi etiketleri uygulama etiketinin içine girer. Bu doğru mu? – Dominic

+1

@Dominic - evet, tezahürüm böyle görünüyor. Belki başka pozisyonlar da işe yarayabilir ama ben onları denemedim. – mah

+0

Bu doğru cevap olarak kabul edilmelidir. – cgogolin

İlgili konular