Скорее всего, вам понадобится, чтобы они позвонили вам напрямую
Class yourClass = Class.forName("com.yourdomain.yourapp.YourClass");
Intent intent = new Intent(this, yourClass);
Если у них нет банки для ссылки. В противном случае они могли бы просто использовать
Intent intent = new Intent(this, YourClass.class);
А потом положил туда несколько дополнений. Вся концепция намерения просмотра (наряду с другими) состоит в том, чтобы предоставить пользователям выбор того, как они хотели бы что-то просматривать / использовать. Это похоже на то, что происходит, когда вы нажимаете «поделиться» в средстве просмотра мультимедиа. Вся идея в том, чтобы дать им выбор. Если кто-то хочет просто начать свою деятельность, ему нужно будет явно позвонить.
Редактировать: Мой пример отражения выше не будет работать напрямую, если загрузчик классов Dalvik не знает о вашем классе (что, вероятно, не будет). На самом деле вам нужно будет конкретно указать ВМ, чтобы он загружал класс из стороннего пакета. Вы можете сделать это с помощью следующего кода
Context foreignContext = createPackageContext("com.yourdomain.yourapp", Context.CONTEXT_IGNORE_SECURITY | Context.CONTEXT_INCLUDE_CODE);
Class<?> yourClass = foreignContext.getClassLoader().loadClass("com.yourdomain.yourapp.YourClass");
Теперь, когда у них есть объект класса, они могут запустить намерение, как и раньше. Таким образом, полный код выглядит примерно так:
Context foreignContext = createPackageContext("com.yourdomain.yourapp", Context.CONTEXT_IGNORE_SECURITY | Context.CONTEXT_INCLUDE_CODE);
Class<?> yourClass = foreignContext.getClassLoader().loadClass("com.yourdomain.yourapp.YourClass");
Intent intent = new Intent(this, yourClass);
startActivity(intent);