Переопределение заголовка для Android общего намерения - PullRequest
0 голосов
/ 16 января 2020

Похоже, что Android автоматически устанавливает заголовок общих намерений для имени приложения. Я хотел бы переопределить его, чтобы сделать его немного более наглядным (например, вместо «Мое приложение» заголовок может быть «Предварительный просмотр с моим приложением».

Как изменить заголовок в всплывающем диалоговом окне «Обмен»). up box in Android?

Я добавил следующий код в мой AndroidManifest. xml:

        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>

Ответы [ 3 ]

0 голосов
/ 16 января 2020

Ключ заключается в том, чтобы начать свое намерение как действие, передав его в качестве аргумента Intent.createChooser(intent: Intent)

Вот пример в Kotlin. Мы все любим Kotlin не так ли? :)

Intent(Intent.ACTION_SEND).apply {
            putExtra(Intent.EXTRA_TEXT, "Some Text")
            type = "text/plain"
            startActivity(Intent.createChooser(this, "My Title"))
        }
0 голосов
/ 27 января 2020

<intent-filter> поддерживает атрибуты android:icon и android:label. Их можно использовать для изменения значка и метки, отображаемых в системном интерфейсе общего доступа.
Обратите внимание, что (по крайней мере, на Android 10) имя приложения по-прежнему отображается. Поэтому вместо «Предварительный просмотр с моим приложением» вы можете просто использовать «Предварительный просмотр» в качестве метки.

Пример:

<intent-filter 
        android:icon="@drawable/share_icon"
        android:label="@string/share_label">

    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/plain" />

</intent-filter>

См. https://developer.android.com/guide/topics/manifest/intent-filter-element

0 голосов
/ 16 января 2020

Название должно идти вместе с намерением поделиться. Итак, если ваше приложение является одним из приложений, которые могут отображать предварительный просмотр, то вы ничего не можете сделать, чтобы показать заголовок для выбора приложения (оно должно исходить из вызывающего приложения).

На с другой стороны, если вы используете Share Intent в самом приложении, вы можете попробовать это:

        Intent sendIntent = new Intent();
        sendIntent.setAction(Intent.ACTION_SEND);
        sendIntent.putExtra(Intent.EXTRA_TEXT, "What ever text you cant to share");
        sendIntent.setType("text/plain");
        startActivity(Intent.createChooser(sendIntent, "Preview with:")); <---- here

Проверьте описание для createChooser

...