Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 25 фев 2017, 04:01

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
 Заголовок сообщения: Урок 27. Читаем action из Intent
СообщениеДобавлено: 23 окт 2011, 21:00 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 12:32
Сообщений: 1319
Благодарил (а): 0 раз.
Поблагодарили: 69 раз.
В этом уроке:

- читаем action из Intent

Click here to read this article!

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Последний раз редактировалось damager82 27 янв 2017, 22:48, всего редактировалось 4 раз(а).

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 13 окт 2012, 14:53 

Зарегистрирован: 01 окт 2012, 17:05
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
У меня такой вопрос:
необходимо узнать названия всех установленных в системе программ, есть у кого какие варианты?
Предполагаю, что это можно сделать с помощью intent, а точнее у каждого приложения будет intent фильтр с параметром
android.intent.action.MAIN, остается только вопрос, как можно определить хотя бы количество установленных приложений, а затем в цикле можно было бы узнать все их названия?
Кто делал нечто подобное, буду рад помощи


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 13 окт 2012, 15:34 

Зарегистрирован: 14 май 2012, 17:18
Сообщений: 372
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
kudri писал(а):
У меня такой вопрос:
необходимо узнать названия всех установленных в системе программ, есть у кого какие варианты?
Предполагаю, что это можно сделать с помощью intent, а точнее у каждого приложения будет intent фильтр с параметром
android.intent.action.MAIN, остается только вопрос, как можно определить хотя бы количество установленных приложений, а затем в цикле можно было бы узнать все их названия?
Кто делал нечто подобное, буду рад помощи

Это можно сделать с помощью PackageManager


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 25 окт 2013, 20:53 

Зарегистрирован: 08 окт 2013, 20:46
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте.
В последней части урока, по нажатию кнопки Show Date должно выводиться 3 варианта: Date Basic, Date Extended, Data/Time Info.
Но у меня вместо Date Basic, Date Extended выводится имя проекта P0261_..., несмотря на то, что в P0261 в активити label прописано Date Basic и Date Extended.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 28 ноя 2013, 16:29 

Зарегистрирован: 28 ноя 2013, 16:28
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте!

У меня при нажатии на Date/Time Info вбрасывается необработанное исключение:
11-28 12:29:05.097: E/AndroidRuntime(339): FATAL EXCEPTION: main
11-28 12:29:05.097: E/AndroidRuntime(339): java.lang.RuntimeException: Unable to start activity ComponentInfo{ua.bestlis.p0271_getintentaction/ua.bestlis.p0271_getintentaction.Info}: java.lang.NullPointerException
11-28 12:29:05.097: E/AndroidRuntime(339): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
11-28 12:29:05.097: E/AndroidRuntime(339): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
11-28 12:29:05.097: E/AndroidRuntime(339): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
11-28 12:29:05.097: E/AndroidRuntime(339): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
11-28 12:29:05.097: E/AndroidRuntime(339): at android.os.Handler.dispatchMessage(Handler.java:99)
11-28 12:29:05.097: E/AndroidRuntime(339): at android.os.Looper.loop(Looper.java:123)
11-28 12:29:05.097: E/AndroidRuntime(339): at android.app.ActivityThread.main(ActivityThread.java:3683)
11-28 12:29:05.097: E/AndroidRuntime(339): at java.lang.reflect.Method.invokeNative(Native Method)
11-28 12:29:05.097: E/AndroidRuntime(339): at java.lang.reflect.Method.invoke(Method.java:507)
11-28 12:29:05.097: E/AndroidRuntime(339): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-28 12:29:05.097: E/AndroidRuntime(339): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-28 12:29:05.097: E/AndroidRuntime(339): at dalvik.system.NativeStart.main(Native Method)
11-28 12:29:05.097: E/AndroidRuntime(339): Caused by: java.lang.NullPointerException
11-28 12:29:05.097: E/AndroidRuntime(339): at ua.bestlis.p0271_getintentaction.Info.onCreate(Info.java:41)
11-28 12:29:05.097: E/AndroidRuntime(339): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-28 12:29:05.097: E/AndroidRuntime(339): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
11-28 12:29:05.097: E/AndroidRuntime(339): ... 11 more

Всё!
Разобрался!!!
Затупил немного, не то view показывал в onCreate()


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 30 дек 2013, 14:56 

Зарегистрирован: 30 дек 2013, 14:54
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Добрый день. Отличные уроки. Скажите пожалуйста как учесть timezone при выводе значения времени?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 15 янв 2014, 12:15 
Аватар пользователя

Зарегистрирован: 09 янв 2014, 10:15
Сообщений: 4
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
В уроке в тексте последнего кода нужно заменить , на ; в строке String format = "", textInfo = "";


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 15 янв 2014, 14:23 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 15:45
Сообщений: 2383
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 320 раз.
Всё в порядке. Ничего менять не стоит. Это определение двух переменных класса String, которое выполняется через запятую.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 15 янв 2014, 15:58 
Аватар пользователя

Зарегистрирован: 09 янв 2014, 10:15
Сообщений: 4
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
m090050, спасибо! как-то этот вариант я упустила )))


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 10 мар 2014, 21:38 

Зарегистрирован: 08 фев 2014, 19:15
Сообщений: 134
Благодарил (а): 53 раз.
Поблагодарили: 7 раз.
А можно где-нибудь узнать action фильтров приложений, установленных на андроид-устройствах? Например Галереи или почты?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 10 мар 2014, 21:49 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 15:45
Сообщений: 2383
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 320 раз.
http://developer.android.com/reference/ ... ntent.html

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 06 июл 2014, 20:06 

Зарегистрирован: 01 июл 2014, 19:19
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Добрый день.
В info.java, где мы по определенному action заполняем переменные, используется метод equals. Читал в разных источниках про него, но везде написано разное. Объясните пожалуйста, в чем отличие этого метода от "=="? Т.к. в коде заменил этот метод на сравнение "==", и ничего не изменилось.

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. // в зависимости от action заполняем переменные
  2.         /*if (action.equals("com.hangover.intent.action.showtime")) {
  3.             format = "HH:mm:ss";
  4.             textInfo = "Time: ";
  5.         }*/
  6.         if (action=="com.hangover.intent.action.showtime") {
  7.             format = "HH:mm:ss";
  8.             textInfo = "Time: ";
  9.         }
  10.         else if (action.equals("com.hangover.intent.action.showdate")) {
  11.             format = "dd.MM.yyyy";
  12.             textInfo = "Date: ";
  13.         }


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 30 дек 2014, 13:16 

Зарегистрирован: 30 дек 2014, 13:09
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте. Подскажите пожалуйста, а могу ли я как-нибудь предотвратить запуск intent.action из браузера?
Объясню:
Делаю хотспот (бесплатный wifi с авторизацией через соцсети). И при попытке войти например через facebook (<a href='ttps://www.facebook.com/dialog/oauth.....'>) - получаю следующую проблему: пользователю предлагается через что открыть ссылку через приложение (если оно установлено) или через браузер. Мне нужно, чтобы эта ссылка всегда открывалась через браузер, т.к. иначе я не смогу авторизовать пользователя.
Может можно в ссылке указать data-* атрибут, или какой-нибудь meta тег в заголовке страницы.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 30 дек 2014, 14:04 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 13:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
не совсем понятно что именно ты делаешь.
Если у приложения есть интерфейс, то тут стандартный вариант webview, отлов пришедших ответов от фейсбука и прочего.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 18 янв 2015, 21:16 

Зарегистрирован: 03 янв 2015, 14:39
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
А можно привести полный код AndriodManifest.xml по этому уроку? просто в android studio нет визуального редактора, по предыдущим урокам я вроде как разобрался с манифестом и ручками писал, а тут какой то затык и не взлетает (


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 20 янв 2015, 09:22 

Зарегистрирован: 03 янв 2015, 14:39
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
все, разобрался, оказывается каждый фильтр должен быть описан отдельно, а я пытался все засунуть в один, вот правильный код
<activity android:name=".info"
android:theme="@style/Base.Theme.AppCompat.Dialog"
android:label="info">
<intent-filter>

<action android:name="showdate"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="showtime"/>

<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 14 фев 2015, 13:08 

Зарегистрирован: 07 фев 2015, 23:00
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
HamyaG писал(а):
все, разобрался, оказывается каждый фильтр должен быть описан отдельно, а я пытался все засунуть в один, вот правильный код


Так оно и нужно в один фильтр все засунуть. По крайней мере я так поняла из урока. Вот мой манифест, все работает:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yanina_is.p027" >

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Info" android:label="Date/timeInfo">
<intent-filter>
<action android:name="ru.startandroid.intent.action.showdate"/>
<action android:name="ru.startandroid.intent.action.showtime"/>
<category android:name="android.intent.category.DEFAULT"/>

</intent-filter>
</activity>
</application>

</manifest>


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 15 май 2015, 13:06 

Зарегистрирован: 15 май 2015, 13:00
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
мені прийшлось все таки чучуть по-іншому записати:

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

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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

<activity
android:name="Info"
android:label="Date/time info" >
<intent-filter>
<action android:name="com.example.intent.action.showtime" />

<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

<intent-filter>
<action android:name="com.example.intent.action.showdate" />

<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

</activity>
</application>

</manifest>

так як просто прописати наступний код не достатньо в моїй ситуації:

<activity
android:name="Info"
android:label="Date/time info" >
<intent-filter>
<action android:name="com.example.intent.action.showtime" />
<action android:name="com.example.intent.action.showdate" />
<category android:name="android.intent.category.DEFAULT" />




</intent-filter>
</activity>


не виводить повідомлення про можливість вибору з інших action попереднього уроку


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 27. Читаем action из Intent
СообщениеДобавлено: 26 окт 2015, 23:43 

Зарегистрирован: 26 окт 2015, 22:41
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ответ на вопрос пользователя "compl"

День добрый и вам
Постараюсь ответить на ваш вопрос в свете личного понимания.
Поскольку при разработке мы используем синтаксис языка java(для файлов nameApp.java),то и базовые понятия должны соответствовать этому синтаксису.

Не много теории.

equals это - операция сравнения содержимого соответствующих переменным областям памяти

== это - операция сравнения ссылок.

В чём разница?

метод equals(Object) класса java.lang.Object
сравнивает содержимое двух областей памяти

== операция сравнения двух ссылок на объекты. Т.е. эта операция вернет true тогда и только тогда, когда содержимое совпадает, что означает, что переменные указывают на ОДИН И ТОТ ЖЕ объект.

Что касается вашего случая то здесь есть маленький нюанс.
Одинаковые строки на самом деле являются единственным объектом. В чем легко убедиться, выполнив следующий код:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. String str1 = "string";
  2. String str2 = "string";
  3. System.out.println(str1==str2 ? "the same" : "not the same");
  4.  


Результатом будет "the same". Что означает, что ссылки на строки равны. Это сделано на уровне компилятора, очевидно, для экономии памяти. Компилятор создает ОДИН экземпляр строки, и присваивает str1 и str2 ссылку на этот экземпляр.

Однако, это относится только к строкам, объявленным как литералы, в коде. Если скомпоновать строку из кусков, ссылка на нее будет другой. Подтверждение – данный пример:

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.  
  2.  String str1 = "string";
  3. String str2 = "str";
  4. String str3 = "ing";
  5. System.out.println(str1==(str2+str3) ? "the same" : "not the same");
  6.  

Результатом будет "not the same". Также можно создать новый объект с помощью копирующего конструктора:

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.  String str1 = "string";
  2. String str2 = new String("string");
  3. System.out.println(str1==str2 ? "the same" : "not the same");
  4.  

Результатом также будет "not the same".

Таким образом, иногда строки можно сравнивать и через сравнение ссылок. Но на это лучше не полагаться.
При объяснении использованы материалы из сайта(http://www.skipy.ru)

Надеюсь смог помочь


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 19 ] 

Часовой пояс: UTC + 4 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB