Как сделать так, чтобы мое приложение отображалось на доске общего доступа других приложений - пример WhatsApp - PullRequest
0 голосов
/ 02 августа 2020

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

  <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

Кроме того, вот код Java:

public class MainActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Intent intent = getIntent();
    String action = intent.getAction();
    String type = intent.getType();


    if (Intent.ACTION_SEND.equals(action) && type != null) {
        if ("text/plain".equals(type)) {
            handleSendText(intent); // Handle text being sent
        } else {
            // Handle other intents, such as being started from the home screen
        }
    }
}


void handleSendText(Intent intent) {
    String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
    if (sharedText != null) {

        Log.d(TAG, sharedText);
        // Update UI to reflect text being shared
    }
}}

Я просмотрел много объяснений, но не мог понять, в чем проблема. Спасибо.

1 Ответ

0 голосов
/ 02 августа 2020

Добавили ли вы фильтр намерений под правильную активность в AndroidManifest. xml?

Теоретически это должно работать, но некоторые приложения могут не отправлять правильное намерение для вашего приложения. Возможно, WhatsApp использует «ПРОСМОТР» вместо «ОТПРАВИТЬ», поэтому попробуйте следующее:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.SEND" />

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

Сообщите мне, работает ли это для вас.

...