@Chesterfield25

Почему intent запускается не в том месте?

У меня приложение если приконекчно к часам открывает браузер на часах и переходит по ссылке

private void launchBrowser() {
        new Thread(() -> {
            Looper.prepare();
            if (getConnectedNode() != null) {
                RemoteActivityHelper remoteActivityHelper = new RemoteActivityHelper(this, Executors.newSingleThreadExecutor());
                remoteActivityHelper.startRemoteActivity(
                        new Intent(Intent.ACTION_VIEW)
                                .setData(Uri.parse("http://test.wear-store.ru/"))
                                .addCategory(Intent.CATEGORY_BROWSABLE)
                );

                Toast.makeText(this, "Please check your watch", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(this, "No watch is connected", Toast.LENGTH_LONG).show();
            }
        }).start();

    }


А как сделать так что бы оно не открывало браузер на часах, а показывало окно поделится ссылкой на часах

Intent intent = new Intent(
                Intent.ACTION_SEND
        );
        intent.setType("text/plain");
        String Body = "Download this App";
        String Sub = apkURL;
        intent.putExtra(Intent.EXTRA_TEXT, Body);
        intent.putExtra(Intent.EXTRA_TEXT, Sub);
        intent.putExtra("url", textURl.getText().toString());
        startActivity(Intent.createChooser(intent, "Share using"));


Потому что если я пытаюсь вызвать в Intent.ACTION_VIEW другой метод то ссылкой делится но не на часах а на телефоне!

639f202c2eaca577128963.png

private void launchPlayStoreOnWear() {
        new Thread(() -> {
            Looper.prepare();
            if (getConnectedNode() != null) {
                RemoteActivityHelper remoteActivityHelper = new RemoteActivityHelper(this, Executors.newSingleThreadExecutor());
                remoteActivityHelper.startRemoteActivity(
                        new Intent(Intent.ACTION_VIEW)
                                .setData(sendLink())
                                .addCategory(Intent.ACTION_SEND)
                );



                Toast.makeText(this, "Please check your watch", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(this, "No watch is connected", Toast.LENGTH_LONG).show();
            }
        }).start();

    }

    private Uri sendLink() {
        Intent intent = new Intent(
                Intent.ACTION_SEND
        );
        intent.setType("text/plain");
        String Body = "Download this App";
        String Sub = apkURL;
        intent.putExtra(Intent.EXTRA_TEXT, Body);
        intent.putExtra(Intent.EXTRA_TEXT, Sub);
        intent.putExtra("url", textURl.getText().toString());
        startActivity(Intent.createChooser(intent, "Share using"));
        return null;
    }
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
Jacen11
@Jacen11
ты вообще хоть немного пытаешься думать? голова не только для еды нужна

пытаюсь вызвать в Intent.ACTION_VIEW другой метод
Intent.ACTION_VIEW является строкой, как можно что то вызывать в строчке текста?

.setData(sendLink())
зачем ты делаешь этот сет если туда все равно всегда засовываешь null? Если метод должен только uri формировать, нахрена там происходит запуск активити?

.addCategory(Intent.ACTION_SEND)
зачем добавляется еще категория, если ты данных туда не добавляешь и вообще непонятно что делаешь

new Thread(()
это ты сам придумал? ни разу не видел чтобы кто то это использовал

что бы оно не открывало браузер на часах, а показывало окно поделится ссылкой на часах
очевидно сделать интент для "поделиться ссылкой", а не мешать все в кучу
ACTION_SEND - поделиться чем то
ACTION_VIEW - показать что то
можно по переводу догадаться
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы