powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Как в андроиде получить параметры командной строки?
6 сообщений из 6, страница 1 из 1
Как в андроиде получить параметры командной строки?
    #39719136
Blackmore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ассоциировал приложение с определенным расширением файлов и теперь в этом приложении мне надо файлы эти открывать. Как мне узнать из него, для какого файла приложение было вызвано? Ну т.е. типа командной строки на десктопе.
...
Рейтинг: 0 / 0
Как в андроиде получить параметры командной строки?
    #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
Как в андроиде получить параметры командной строки?
    #39719264
Oleg Shishkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не забыть обработать
...
Рейтинг: 0 / 0
Как в андроиде получить параметры командной строки?
    #39719265
Oleg Shishkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не забыть обработать
@Override
protected void onNewIntent(Intent intent) {

}
...
Рейтинг: 0 / 0
Как в андроиде получить параметры командной строки?
    #39719605
Blackmore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А обработать - значит в данном случае сделать пустой хендлер, так?
...
Рейтинг: 0 / 0
Как в андроиде получить параметры командной строки?
    #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
6 сообщений из 6, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Как в андроиде получить параметры командной строки?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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