Sobes.tech
Middle

Uygulama belirli bir Intent'in işlenme olasılığını nasıl belirler?

sobes.tech yapay zeka

AI'dan gelen yanıt

Uygulama, Intent'in içeriğini, bileşenlerin (Activity, Service, BroadcastReceiver) manifestosunda belirtilen bilgilerle karşılaştırmaya dayalı bir Intent çözümleme mekanizması aracılığıyla Intent'in işlenme olasılığını belirler.

Ana adımlar:

  1. Uygun filtreleri (Intent Filtreleri) Arama: Sistem, AndroidManifest.xml içinde yayınlanan ve <intent-filter> bloğu Intent içeriğiyle eşleşen bileşenleri arar.

    <!-- Bir Activity için örnek intent filtresi -->
    <activity android:name=".SomeActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
    
  2. Action ile Eşleştirme: Intent, intent-filter içindeki eylemlerden biriyle eşleşen bir <action> içermelidir.

  3. Kategori ile Eşleştirme: Intent, <category> öğelerini içermeli ve bu kategoriler, intent-filter içindeki kategorilerin alt kümesi olmalıdır. Eğer Intent kategori içermiyorsa, android.intent.category.DEFAULT içeren filtrelerle eşleşir.

  4. Data ile Eşleştirme (Uri ve Mime Type): Intent, Uri ve/veya Mime Type içerebilir. Bu veriler, <scheme>, <host>, <port>, <path>, <pathPattern>, <pathPrefix> Uri şeması ve <mimeType> ile uyumlu olmalıdır, ki bunlar intent-filter içinde belirtilmiştir.

    Intent Data Bölümü <data> içindeki karşılık gelen öğe
    Scheme <scheme>
    Authority (Host:Port) <host>, <port>
    Path <path>, <pathPattern>, <pathPrefix>
    Mime Type <mimeType>
  5. Extras ile Eşleştirme (nadiren, işleme olasılığını belirlemek için): Extras bileşen tarafından kullanılabilir, ancak genellikle Intent'in ilk çözümlemesini etkilemez.

Gizli olmayan Intent'ler (startActivity(intent), bindService(intent), sendBroadcast(intent)) için sistem, uygun tüm bileşenleri bulur. Birden fazla Activity bulunursa, sistem kullanıcıya seçim diyaloğu gösterebilir (