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

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 13 ноя 2018, 05:34

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




Начать новую тему Ответить на тему  [ Сообщений: 88 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: 09 сен 2013, 18:16 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Вот к примеру часть нашего манифеста, где это работает
Код: [ Загрузить ] [ Скрыть ]
Using XML Syntax Highlighting
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.    package="ru.lab_m.whowhere"
  4.    android:versionCode="1053"
  5.    android:versionName="1.9.1053" >
  6.  
  7.     <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="18"/>
  8.    ....
  9.     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
  10.     <application
  11.        android:name=".App"
  12.        android:debuggable="true"
  13.        android:icon="@drawable/ic_launcher"
  14.        android:theme="@style/Theme.whowhere"
  15.        android:label="@string/app_name" >
  16.         <service
  17.            android:name=".GPSService"
  18.            android:process=":remote" >
  19.             <intent-filter>
  20.                 <action android:name=".Service" />
  21.                 <action android:name="android.intent.action.MEDIA_MOUNTED" />
  22.             </intent-filter>
  23.         </service>
  24.  
  25.         <receiver
  26.            android:name=".BootUpReceiver"
  27.            android:enabled="true"
  28.            android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
  29.             <intent-filter>
  30.                 <action android:name="android.intent.action.BOOT_COMPLETED" />
  31.                 <action android:name="android.intent.action.QUICKBOOT_POWERON" />
  32.                 <category android:name="android.intent.category.DEFAULT" />
  33.             </intent-filter>
  34.         </receiver>
  35. ...
  36.  

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

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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 сен 2013, 13:05 

Зарегистрирован: 05 сен 2013, 17:34
Сообщений: 12
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
no-- писал(а):
Вот к примеру часть нашего манифеста, где это работает

Спасибо, но один в один прописываю манифест и все равно на 4.0 не работает. Пойду искать бубен )


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 сен 2013, 14:54 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Может не там ищете? К примеру у меня было так, что в автозагрузке была задействована флешка, которая не могла за 10 секунд смонтироваться и Андроид радостно выгружал сервис. Т.е. другими словами, onCreate должен запуститься за 10 секунд.

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

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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 ноя 2013, 10:53 
Аватар пользователя

Зарегистрирован: 03 сен 2013, 09:39
Сообщений: 145
Откуда: Германия
Благодарил (а): 18 раз.
Поблагодарили: 1 раз.
neoksi писал(а):
По поводу второго вопроса, если ты не сохранил данные сервиса перед выключением устройства, то ты потерял данные, так как при выключении устройства все процессы сервисов просто киляются без вызова у них onDestroy.


neoksi писал(а):
Я лично сделал отдельный ресивер на событие отключения и в нем вызываю остановку сервиса. А вся процедура сохранения у меня в onDestroy сервиса. Загрузка данных в onCreate.


Что-то я не понял смысла тогда. Если onDestroy не вызывается, как там можно что-то сохранять?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 янв 2014, 12:26 

Зарегистрирован: 27 мар 2013, 14:23
Сообщений: 6
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Подскажите, как запускать сервис если приложение было остановлено через Настройки?
(Настройки->Диспетчер приложений->Приложение->Принуд. остановить)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 янв 2014, 13:10 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Никак. Только после перезагрузки, если стоит в бутзагрузке приложение.

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

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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 янв 2014, 13:23 
Аватар пользователя

Зарегистрирован: 18 окт 2012, 11:17
Сообщений: 1098
Откуда: г. Красноярск
Благодарил (а): 26 раз.
Поблагодарили: 279 раз.
nunuchek писал(а):
Подскажите, как запускать сервис если приложение было остановлено через Настройки?
(Настройки->Диспетчер приложений->Приложение->Принуд. остановить)


Вероятно только перезапуском приложения вручную. Иначе бы начали появляться совсем не убиваемые сервисы, что не есть хорошо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 янв 2014, 14:11 
Аватар пользователя

Зарегистрирован: 13 ноя 2013, 14:46
Сообщений: 1956
Благодарил (а): 10 раз.
Поблагодарили: 275 раз.
klblk писал(а):
nunuchek писал(а):
Подскажите, как запускать сервис если приложение было остановлено через Настройки?
(Настройки->Диспетчер приложений->Приложение->Принуд. остановить)


Вероятно только перезапуском приложения вручную. Иначе бы начали появляться совсем не убиваемые сервисы, что не есть хорошо.

они как бы есть. В kit kat это стало доступно(на не рутованных девайсах) не только google, но и простым смертным и называется это Privileged Apps(по сути достаточно поместить приложение в /system/priv-app).

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

Так же это доступно через "нативный" код не зависимый от Android Framework. И это ооочень активно применяется в различного рода custom прошивках.

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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 18 апр 2014, 10:21 

Зарегистрирован: 13 ноя 2012, 08:02
Сообщений: 57
Благодарил (а): 6 раз.
Поблагодарили: 0 раз.
я все сделал и работает хорошо. но есть проблема. моя программа не отображается в настройках в разделе приложения - запущение. Есть только в разделе кэшированные. это может и хорошо. дело в другом. на некоторых телефонах для энергосбережения есть режимы специальные, вот скажем при нажатии кнопки блокировки все программы выключаются и службы и остается только прием звонков и смс. и когда нажата , то после разблокировки выдает что программа закрыта или ошибка. Подскажите как сделать чтобы не умирал или сказал системе что после выключения блокировки запускался. Спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 18 апр 2014, 11:32 
Аватар пользователя

Зарегистрирован: 18 окт 2012, 11:17
Сообщений: 1098
Откуда: г. Красноярск
Благодарил (а): 26 раз.
Поблагодарили: 279 раз.
1) Можно попробовать WakeLock (http://developer.android.com/intl/ru/re ... eLock.html). Если он не поможет, то вероятно ничего уже сервис не спасет.
2) По включению после блокировки можно попробовать вот этот ресивер: http://stackoverflow.com/questions/16161062/broadcastreceiver-for-screen-on-off-not-working


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 18 апр 2014, 11:59 

Зарегистрирован: 13 ноя 2012, 08:02
Сообщений: 57
Благодарил (а): 6 раз.
Поблагодарили: 0 раз.
klblk писал(а):
1) Можно попробовать WakeLock (http://developer.android.com/intl/ru/re ... eLock.html). Если он не поможет, то вероятно ничего уже сервис не спасет.
2) По включению после блокировки можно попробовать вот этот ресивер: http://stackoverflow.com/questions/16161062/broadcastreceiver-for-screen-on-off-not-working

спасибо большое. сейчас попробую


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 03 фев 2015, 10:33 
Аватар пользователя

Зарегистрирован: 07 дек 2013, 22:07
Сообщений: 182
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.
В уроке написано, что переход в Foreground вызывает вызов соответствующего нотификейшена.

Обязательно ли оно должно вызываться? И можно перейти в Foreground без этого уведомления?

_________________
Arbeit macht Fry


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 04 фев 2015, 06:49 
Аватар пользователя

Зарегистрирован: 18 окт 2012, 11:17
Сообщений: 1098
Откуда: г. Красноярск
Благодарил (а): 26 раз.
Поблагодарили: 279 раз.
Fry писал(а):
В уроке написано, что переход в Foreground вызывает вызов соответствующего нотификейшена.

Обязательно ли оно должно вызываться? И можно перейти в Foreground без этого уведомления?


На сколько я знаю обязательно. Можно попробовать передать null вместо нотификации, но я не проверял и не знаю будет ли это работать.
Суть в том, что пользователь должен видеть, что у него запущен на устройстве не убиваемый сервис и для этого нужна не убиваемая нотификация. =)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 фев 2015, 14:16 

Зарегистрирован: 08 янв 2015, 14:32
Сообщений: 115
Благодарил (а): 6 раз.
Поблагодарили: 5 раз.
эммм.... неожиданно)
не выложена полная разжёванная инфа от "создадим проект" до "а вот сюда вот воткните вот эту галочку")))
после 99 копи-пастов на сотом заходе пришлось включить мозги)

startService(intent.putExtra("time", 3).putExtra("label", "Call 1") ); - как написано в тексте урока не работает - ругается на интент.

Intent intent = null; компилируется, но в эмуляторе вываливается по нажатии на кнопку

Intent intent = new Intent (this, MyService.class); в тексте урока не хватает вот этого) спасибо, заставили думать)))

на видео подглядел startService(new Intent(this, MyService.class).putExtra ...

короче нужно покурить и выпить пару бутылок, обдумать всё и понять - неделю ковыряю, но с этими потоками пока честно говоря каша(((

а вообще спасибо за уроки! материал бесценен!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 июл 2015, 10:58 

Зарегистрирован: 14 дек 2012, 09:14
Сообщений: 9
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Привет, народ!
А у меня такой вопрос:
Хочу добиться чтобы иконка моего сервиса постоянно болталась в статус-баре, а сообщение о запущенной службе
было не в нотификации, а в поле "Текущие операции".
На скриншотах примером является приложение ACR.
Его иконка в виде трубки телефона в белом круге.
Вложение:
Комментарий к файлу: Сообщение о приложении находится не в поле "Нотификация", а в поле "Текущие операции"
Screenshot_2015-07-08-12-32-40.jpeg
Screenshot_2015-07-08-12-32-40.jpeg [ 518.69 KiB | Просмотров: 5131 ]

Вложение:
Комментарий к файлу: Иконка приложения ACR (белый круг с трубкой)
Screenshot_2015-07-08-12-29-06.jpeg
Screenshot_2015-07-08-12-29-06.jpeg [ 896.5 KiB | Просмотров: 5131 ]


Иначе при стирании нотификаций пропадает и иконка моего сервиса из статуса, а это не есть хорошо...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 июл 2015, 11:41 
Аватар пользователя

Зарегистрирован: 18 окт 2012, 11:17
Сообщений: 1098
Откуда: г. Красноярск
Благодарил (а): 26 раз.
Поблагодарили: 279 раз.
ValeriusSR писал(а):
Иначе при стирании нотификаций пропадает и иконка моего сервиса из статуса, а это не есть хорошо...


Не должно быть этого если сервис в режиме Foreground запущен.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 июл 2015, 12:27 

Зарегистрирован: 14 дек 2012, 09:14
Сообщений: 9
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
klblk писал(а):
ValeriusSR писал(а):
Иначе при стирании нотификаций пропадает и иконка моего сервиса из статуса, а это не есть хорошо...


Не должно быть этого если сервис в режиме Foreground запущен.


Вы правы! Спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 04 авг 2015, 14:52 
Аватар пользователя

Зарегистрирован: 04 авг 2015, 14:50
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Воспользовался данным уроком. Создал Сервис и бродкас но система не хочет реагировать на событие и вызывать сервис. Кто может скинуть рабочий пример реализации например на action = android.intent.action.BATTERY_CHANGED ?? Буду очень благодарен. В интернете куча примеров перепробовал сервис не запускается.

UPD: Проблему решил ...


Последний раз редактировалось mkw 21 авг 2015, 22:49, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 авг 2015, 18:27 

Зарегистрирован: 21 авг 2015, 18:02
Сообщений: 3
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Здравствуйте. Помогите, пожалуйста, разобраться с функцией автозагрузки. Я уже замучался, кучу статей и советов перечитал, много чего перепробовал, но хоть ты тресни, не срабатывает при загрузке телефона!

Я сделал самый примитив для проверки этой автозагрузки:
AndroidManifest.xml
Код: [ Загрузить ] [ Скрыть ]
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     package="ru.alexrodionov.boottest" 
  4.     android:installLocation="internalOnly" > 
  5.  
  6.     <uses-permission android:name="ANDROID.PERMISSION.RECEIVE_BOOT_COMPLETED" /> 
  7.  
  8.     <application 
  9.         android:allowBackup="true" 
  10.         android:icon="@mipmap/ic_launcher" 
  11.         android:label="@string/app_name" 
  12.         android:theme="@style/AppTheme" > 
  13.         <activity 
  14.             android:name=".MainActivity" 
  15.             android:label="@string/app_name" > 
  16.             <intent-filter> 
  17.                 <action android:name="android.intent.action.MAIN" /> 
  18.  
  19.                 <category android:name="android.intent.category.LAUNCHER" /> 
  20.             </intent-filter> 
  21.         </activity> 
  22.  
  23.         <receiver 
  24.             android:name=".MyReceiver" 
  25.             android:enabled="true" 
  26.             android:exported="true" > 
  27.             <intent-filter> 
  28.                 <action android:name="android.intent.action.BOOT_COMPLETED" /> 
  29.             </intent-filter> 
  30.         </receiver> 
  31.     </application> 
  32.  
  33. </manifest> 


MyReceiver.java
Код: [ Загрузить ] [ Скрыть ]
  1. package ru.alexrodionov.boottest; 
  2.  
  3. import android.content.BroadcastReceiver; 
  4. import android.content.Context; 
  5. import android.content.Intent; 
  6. import android.widget.Toast; 
  7.  
  8. public class MyReceiver extends BroadcastReceiver { 
  9.     public MyReceiver() { 
  10.     } 
  11.  
  12.     @Override 
  13.     public void onReceive(Context context, Intent intent) { 
  14.         Toast.makeText(context, "Boot completed", Toast.LENGTH_LONG).show(); 
  15.         context.startActivity(new Intent(context, MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); 
  16.     } 


MainActivity я так и оставил без изменений с текстом "Hello World".

Проверял на Android 4.0.4 и 4.2.2. Первый раз после установки Activity запускал перед перезагрузкой.
Причем если через консоль отправить
adb shell am broadcast -a android.action.intent.BOOT_COMPLETED ru.alexrodionov.boottest
то ресивер срабатывает, но как дело доходит до реальной перезагрузки - тишина.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 авг 2015, 22:49 
Аватар пользователя

Зарегистрирован: 04 авг 2015, 14:50
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Код: [ Загрузить ] [ Скрыть ]
  1. <receiver 
  2.             android:name=".receiver.BootUpReceiver" 
  3.             android:enabled="true" 
  4.             android:permission="android.permission.RECEIVE_BOOT_COMPLETED" > 
  5.             <intent-filter> 
  6.                 <action android:name="android.intent.action.BOOT_COMPLETED" /> 
  7.                 <category android:name="android.intent.category.DEFAULT" /> 
  8.             </intent-filter> 
  9.         </receiver> 


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 88 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

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


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

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