Добавление фильтра намерений для прослушивания ACTION_VIEW в SMS-событиях

Я пишу SMS-приложение, и оно слушает все изменения AndroidManifest, необходимые для SMS-приложений выше Kitkat в соответствии с блог Google. Я также пытался выполнить запросы ACTION_VIEW, связанные с SMS. Что-то в этом формате.

Intent intent = new Intent(Intent.ACTION_VIEW);
   intent.setData(Uri.parse("content://mms-sms/conversations/" + msg.thread_id));
   mContext.startActivity(intent);

Это экран, который отображается для этого вызова.

Диалоговое окно выбора действия

Для этого звонка в диалоговом окне выбора действий отображаются другие приложения SMS, но не мое приложение. Какую схему нужно добавить в манифест, чтобы перечислить мое приложение в этом. Это моя часть манифеста, содержащая фильтр намерений.

<intent-filter>
            <action android:name="android.intent.action.SEND" />
            <action android:name="android.intent.action.SENDTO" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="sms" />
            <data android:scheme="smsto" />
            <data android:scheme="mms" />
            <data android:scheme="mmsto" />
        </intent-filter>

person Codevalley    schedule 20.02.2015    source источник


Ответы (1)


Вам нужно только добавить свойство android:exported в файл Manifest.xml. Свойство android:exported="true" позволит вашей активности быть видимой за пределами вашего приложения, чтобы другое приложение могло вызывать вашу активность для решения аналогичных задач. Добавьте все упомянутые вами свойства в свою активность, как показано ниже, и ваше приложение также появится на экране разрешения намерения. Код манифеста приведен ниже. Я также прилагаю скриншот с моим ответом.

Дизайн манифеста ---->

<activity android:name=".activities.Experimental"
          android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <action android:name="android.intent.action.SENDTO" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data android:scheme="sms" />
        <data android:scheme="smsto" />
        <data android:scheme="mms" />
        <data android:scheme="mmsto" />
    </intent-filter>

</activity>

Вот скриншот, на котором мое приложение Hoster отображается как вариант выбора.

person Abhishek    schedule 23.02.2015