Как назначить Лончером по умолчанию свое приложение ?

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Аватара пользователя
Aleks Pelevin
Сообщения: 10
Зарегистрирован: 26 янв 2014, 01:48

Как назначить Лончером по умолчанию свое приложение ?

Сообщение Aleks Pelevin » 04 фев 2014, 10:40

Подскажите пожалуйста! В наличии - мой app. В нем -полноэкранный активити: кнопка позвонить и часы... ну и фон красивый) Всё работает. Но мне нужно назначить это приложение - основным лончером системы., что бы при включении телефона и после возврата " домой " включался именно мой экран. Я так понял - это в манифесте нужно добавить Intent ? Запутался. В интернете пока ответ не нашел . Программка для бабули. Прога уже готова, осталось только разобраться с этим.
Вот вырез из манифеста, проставил, что мог - результата нет. Не там ищу наверное....

Код: Выделить всё

 <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="android.intent.action.MAIN"/>
            </intent-filter>
Заранее спасибо!
Шьерт побьери а ведь есть в этом смысл!

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Как назначить Лончером по умолчанию свое приложение ?

Сообщение altwin » 04 фев 2014, 15:04

если убрать повторяющуюся строку <action android:name="android.intent.action.MAIN"/> все выглядит вроде правильным, но по куску вырезанному нельзя понять, что вообще происходит, даже не понятно в какой части манифеста у вас находится этот код, нужно не вырезы давать а полную картину. Тут можно посмотреть, как это вообще делается, может найдете отличия: http://arnab.ch/blog/2013/08/how-to-wri ... n-android/

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

Аватара пользователя
Aleks Pelevin
Сообщения: 10
Зарегистрирован: 26 янв 2014, 01:48

Re: Как назначить Лончером по умолчанию свое приложение ?

Сообщение Aleks Pelevin » 05 фев 2014, 01:08

altwin писал(а): P.S. не стоит забывать, чтобы ваш ланчер был установлен по умолчанию - пользователь должен это выбрать, т.е. в настройках вам нужно указать использование своего приложения, как ланчера всегда.
В этом и проблема, что в Android 4.3 его вообще нет в списке лончеров. Но после его открытия если нажать кнопку домой -список лончеров всё же выпадает, значит система частично понимает, что ето лончер, но именно моего apk. в этом списке нет. Там есть стандартный и Nova. Зато в Android 2.3 всё нормально( на эмуляторе ) - он есть и после выбора работает именно он. Даже после перезагрузки.

Манифест

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.buttfull"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="false"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.buttfull.FullscreenActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/FullscreenTheme" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="android.intent.action.MAIN"/>
            </intent-filter>
        </activity>
    </application>

</manifest>
Ява

Код: Выделить всё

public class FullscreenActivity extends Activity implements OnClickListener {
	 

	
	Button  button1;
	Button  button2;

	
	
	 
	  @Override
	    public void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);

	        requestWindowFeature(Window.FEATURE_NO_TITLE);
	        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
	                                WindowManager.LayoutParams.FLAG_FULLSCREEN);

	                setContentView(R.layout.activity_fullscreen);
	        	
	        	
	        		button1 = (Button) findViewById(R.id.butt);
	        		button2 = (Button) findViewById(R.id.button2);
	        	
	        		
	        	    Animation vanish = AnimationUtils.loadAnimation(this,R.layout.vanish);
	        		findViewById(R.id.butt).startAnimation(vanish);
	        		
	        		Animation vanish1 = AnimationUtils.loadAnimation(this,R.layout.vanish1);
	        		findViewById(R.id.button2).startAnimation(vanish1);
	        		 
	        		button1.setOnClickListener(this);
	        		button2.setOnClickListener(this);
	    }
	        		
	  @Override
	  public void onClick(View v) {
	    Intent intent = null;

	    switch(v.getId()) {
	    case R.id.butt:
	      intent = new Intent(Intent.ACTION_DIAL);
	      startActivity(intent);
	      break;
	    case R.id.button2:
	      intent = new Intent(Intent.ACTION_MAIN);
	      startActivity(intent);
	      break;
	    }
	  }
	}
Последний раз редактировалось Aleks Pelevin 05 фев 2014, 02:04, всего редактировалось 1 раз.
Шьерт побьери а ведь есть в этом смысл!

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Как назначить Лончером по умолчанию свое приложение ?

Сообщение altwin » 05 фев 2014, 01:36

исходя из того, который используется по умолчанию в Android: https://github.com/android/platform_pac ... st.xml#L77
вам нужно заменить свой intent filter на этот:
[syntax=xml]
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
[/syntax]
у вас не только дублированная строчка MAIN но и LAUNCHER там ни к чему

P.S. хотя я не совсем понимаю, может ли это быть причиной того, оно не работает, странно как то.
Изображение

Аватара пользователя
Aleks Pelevin
Сообщения: 10
Зарегистрирован: 26 янв 2014, 01:48

Re: Как назначить Лончером по умолчанию свое приложение ?

Сообщение Aleks Pelevin » 05 фев 2014, 05:22

БОЛЬШОЕ СПАСИБО! Всё работает! ! УРА!
Вот этот intent filter :

Код: Выделить всё

<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
Шьерт побьери а ведь есть в этом смысл!

Pavelford2@mail.ru
Сообщения: 1
Зарегистрирован: 01 авг 2014, 18:25

Re: Как назначить Лончером по умолчанию свое приложение ?

Сообщение Pavelford2@mail.ru » 02 авг 2014, 13:15

Напишите пожалуйста, как активировать приложение не нажимая после установки приложения «готово или открыть»?

Ответить