Вопрос касается Intent-атрибут data
Добавлено: 09 авг 2016, 20:01
Я только учусь, прошу отнестись с пониманием.
Сам ответа никак не могу найти. Вроде все перепробовал. Прошу учесть, что задача чисто учебная. Я понимаю, что могу легко добиться результата с помощью Extras. Но ведь и так как я хочу тоже должно работать. Помогите, плиз, разобраться.
Задача очень простая. Вызываю из одной активности другую и передаю второй данные. Использую неявное намерение.
В манифесте для второй активности настроил intent-filter
В результате Андроид не может вызвать вторую активность. Не находит ее по манифесту.
Причем если добавляю скажем еще условие по схеме данных <data android:scheme="asko" /> - все работает.
Первый вопрос. Везде где я читал об этом говорится, что если в манифесте для активности на данные нет фильтра, тогда активность подходит (если конечно подходит Action и категория - Default). У меня почему-то это правило не работает
Второй вопрос. Я пытался дополнительно настроить фильтр по mime-типам. Вообще ничего не вышло
Результат тот же -активность не находится.
Добавлял такую строчку в intent-filter
Я наивно полагал, что тип переданной URI-строки - именно text. И опять промах
Признаться, что я и так пробовал - <data android:mimeType="*/*" />. Все равно мимо.
Где я косячу?
Сам ответа никак не могу найти. Вроде все перепробовал. Прошу учесть, что задача чисто учебная. Я понимаю, что могу легко добиться результата с помощью Extras. Но ведь и так как я хочу тоже должно работать. Помогите, плиз, разобраться.
Задача очень простая. Вызываю из одной активности другую и передаю второй данные. Использую неявное намерение.
Код: Выделить всё
intent = new Intent("ru.asko.SECOND");
intent.setData(Uri.parse("asko://данные из uri"));
startActivity(Intent.createChooser(intent, "Не попал!"));
<activity android:name=".MainActivity" android:label="Передача данных">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity" android:label="Переданные данные">
<intent-filter>
<action android:name="ru.asko.SECOND" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
В результате Андроид не может вызвать вторую активность. Не находит ее по манифесту.
Причем если добавляю скажем еще условие по схеме данных <data android:scheme="asko" /> - все работает.
Первый вопрос. Везде где я читал об этом говорится, что если в манифесте для активности на данные нет фильтра, тогда активность подходит (если конечно подходит Action и категория - Default). У меня почему-то это правило не работает
Второй вопрос. Я пытался дополнительно настроить фильтр по mime-типам. Вообще ничего не вышло
Добавлял такую строчку в intent-filter
Код: Выделить всё
<data android:mimeType="text/*" />
Где я косячу?