Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Как в андроиде получить параметры командной строки? / 6 сообщений из 6, страница 1 из 1
17.10.2018, 23:39
    #39719136
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в андроиде получить параметры командной строки?
Я ассоциировал приложение с определенным расширением файлов и теперь в этом приложении мне надо файлы эти открывать. Как мне узнать из него, для какого файла приложение было вызвано? Ну т.е. типа командной строки на десктопе.
...
Рейтинг: 0 / 0
18.10.2018, 07:41
    #39719169
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в андроиде получить параметры командной строки?
Это не командная строка, а Intent (intent-filter) активности, который описан в манифесте.

Например
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<activity android:name=".ShareActivity" android:excludeFromRecents="true" android:label="@string/title_activity_share" android:theme="@android:style/Theme.NoDisplay">
  <intent-filter>
    <action android:name="android.intent.action.SEND" /> 
    <action android:name="android.intent.action.SEND_MULTIPLE" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*" /> 
    <data android:mimeType="video/*" /> 
  </intent-filter>
</activity>



В активности такой код, который на входе получает один или несколько рисунков или видео:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_share);
		finish();

		Intent intent = getIntent();
		String action = intent.getAction();
		String type = intent.getType();

		if (type == null)
			return;

		if (!intent.hasExtra(Intent.EXTRA_STREAM))
			return;

		if (Intent.ACTION_SEND.equals(action)) {
			Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
			shareImageWithUri(imageUri);
		} else if (Intent.ACTION_SEND_MULTIPLE.equals(action)) {
			ArrayList<Parcelable> list = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
			for (Parcelable p : list) {
				shareImageWithUri((Uri) p);
			}
		}
	}

	private void shareImageWithUri(Uri uri) {
		UploadService.putToShare(uri, getApplicationContext());
	}



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

Примеров в сети полно. Главное знать, что гуглить. :)
...
Рейтинг: 0 / 0
18.10.2018, 11:00
    #39719264
Oleg Shishkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в андроиде получить параметры командной строки?
И не забыть обработать
...
Рейтинг: 0 / 0
18.10.2018, 11:01
    #39719265
Oleg Shishkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в андроиде получить параметры командной строки?
И не забыть обработать
@Override
protected void onNewIntent(Intent intent) {

}
...
Рейтинг: 0 / 0
18.10.2018, 22:26
    #39719605
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в андроиде получить параметры командной строки?
А обработать - значит в данном случае сделать пустой хендлер, так?
...
Рейтинг: 0 / 0
19.10.2018, 07:08
    #39719650
Oleg Shishkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в андроиде получить параметры командной строки?
Blackmore,

как-то так

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
    private Intent mIntent;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        onNewIntent(getIntent());
    }

   @Override
    protected void onNewIntent(Intent intent) {
        mIntent = intent;
    }

    @Override
    protected void onStart() {
        super.onStart();

        if (mIntent != null) {
            final String action = mIntent.getAction();
            if ("android.intent.action.MAIN".equalsIgnoreCase(action)) {
                // Обработка старта из лончера
                showMainFragment();
            } else if (ACTION_CLICK.equalsIgnoreCase(action)) {
                // Обработка клика на уведомлении
                showMessage();
            }
            mIntent = null;
        }
    }
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Как в андроиде получить параметры командной строки? / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]