2012-03-05 1 views
5

Я ищу способ запуска приложения при открытии непосредственно с рынка Android, но не поддерживающего активность в меню запуска. Я подумал, что, используя следующие параметры, я смог бы добиться этого:Создание основной деятельности, которая НЕ отображается в списке запуска.

<activity android:name="com.package.test.MyActivity" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
     </intent-filter> 
    </activity> 

Тем не менее, кажется, что с этими настройками Активности по-видимому, даже не существует в приложении - это не может быть открыт из рынок и не появляется в меню запуска. Однако, просто добавив:

<category android:name="android.intent.category.LAUNCHER" /> 

Приложение делает оба. Проблема в том, что я хочу, чтобы активность запускалась с рынка, но я не хочу этого в меню запуска.

Может ли кто-нибудь просветить меня, как это можно достичь?

+2

Немногих пользователей собираются найти свою деятельность в дальнейшем, посетив рынок листинга, потому что они не используются для открытия приложений через рынок в любое время после первоначальной установки. Это означает, что у них будет в принципе ** один шанс ** открыть вашу деятельность - сразу после установки. Многие этого не сделают, потому что они не хотят открывать ваше приложение в этот момент. Следовательно, даже если это возможно (и из вашего описания, я подозреваю, что это не так), вы просто просите о множестве «-го слота» с рейтингом одной звезды. Я предлагаю вам пересмотреть свой подход. – CommonsWare

+0

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

+1

Во-первых, убедитесь, что живые обои будут использоваться на Android 3.1+ без запуска пользователем активности. В настоящее время многие вещи отключены на уровне 3.1+, пока они не запускают активность. Во-вторых, подумайте о том, чтобы оставить деятельность в одиночку с самого начала и скрыть ее от пусковой установки и использовать 'PackageManager' и' setComponentEnabledSetting() ', если это практично, учитывая природу ваших обоев. – CommonsWare

ответ

12

Вместо LAUNCHER, используйте android.intent.category.INFO. Знайте, что это часто не используется, но примером является дополнительный пакет, такой как анимация Beautiful Widgets, где информационный экран за пределами списка «Рынок» полезен после установки приложения, но никакого вреда не будет сделано, если пользователь никогда не обнаружит этой деятельности.

(Смотрите также this question.)

+1

Отлично, только то, что мне нужно. Очень признателен! – AaronDS

+0

@ Джош Ли: Я буду голосовать за вас, если вы будете участвовать в выборах модератора :) Отличный ответ –

+0

Спасибо большое, искал несколько дней, наконец, получил i :) – unitedartinc