С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Как получить доступ к сервису? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Где программа хранит свою БД? http://www.cyberforum.ru/android-dev/thread959548.html
Android 4.1.1 Программа работает с sqlite. Установил на внешнюю карту памяти и загрузил в данные в БД. Но я не могу найти саму БД. В эмуляторе база хранится в \data\data\_ИМЯ_ПАКЕТА_\databases\...
Программирование Android Работа с двумя Activity Здравствуйте! В MainActivity имеется editText и кнопка, по нажатию на которую текст из editText выводится на FullscreenActivity. Но при нажатии на кнопку работа приложения прекращается. Обработчик... http://www.cyberforum.ru/android-dev/thread959475.html
Таймер для Android Программирование Android
есть функция которую необходимо вызывать через каждые 60 сек, пока приложение находится в фокусе как узнать что приложение в фокусе? (может быть вызывать функцию с таймером из переопределённого...
Программирование Android FragmentTabHost
Здравствуйте! Я в проекте использую FragmentTabHost. Собственно проблема в том, что когда я к примеру переключаюсь с первого таба на третий и потом жму на системную кнопку назад происходит выход из...
Программирование Android Невозможно отключить доступность элементов меню на устройстве http://www.cyberforum.ru/android-dev/thread959017.html
В эмуляторе могу управлять доступностью элементов меню как run-time, так и при разработке. А на устройстве ни так ни так не блокируется меню. Почему это происходит? Добавлено через 4 минуты...
Программирование Android Eclipse - ошибка после создания проекта Eclipse использую тот, что шел в комплекте с ADT После создания приложений выскакивала ошибка "R cannot be resolved to a varible". Перерыл хешкор.ру, стаковерфлоу, киберфорум в поиске решений. В... подробнее

Показать сообщение отдельно
Ametistos
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 37
23.09.2013, 10:02  [ТС]
это все замечательно, когда я хочу подключиться к сервису из класса который наcледуется от Activity, а я хотел подключиться от класса-потомка BroadcastReceiver:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package actforex.trader.services;
 
import actforex.trader.services.TraderService.LocalBinder;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.IBinder;
import android.util.Log;
 
public class ConnectionStateRceiver extends BroadcastReceiver { 
    
    private TraderService ts;
    private ServiceConnection  sc;
    
    public ConnectionStateRceiver() {
        // TODO Auto-generated constructor stub
        Log.e("BroadcastReceiver", "BroadcastReceiver created");
        sc =  new ServiceConnection(){
             
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                // TODO Auto-generated method stub
                ts = ((LocalBinder)service).getService();
                Log.e("CSC", "connected");
            }
            @Override
            public void onServiceDisconnected(ComponentName name) {
                // TODO Auto-generated method stub
            }
        };
        
    }
    
    @Override
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mobileNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        NetworkInfo wifiNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        boolean isMobileConnected = (mobileNetInfo != null) && mobileNetInfo.isConnectedOrConnecting();     
        boolean isWifiConnected = (wifiNetInfo != null) && wifiNetInfo.isConnectedOrConnecting();
        boolean isConnected = isMobileConnected || isWifiConnected;
        Log.e("actNET", "connection = " + isConnected); 
        context.bindService(new Intent(context, TraderService.class), sc, Context.BIND_AUTO_CREATE);
        ts.myMeth(isConnected);
    }
 
}
и в логе получаю ошибку:

09-23 08:53:42.024: E/BroadcastReceiver(5675): BroadcastReceiver created
09-23 08:53:42.024: E/actNET(5675): connection = false
09-23 08:53:42.054: E/AndroidRuntime(5675): FATAL EXCEPTION: main
09-23 08:53:42.054: E/AndroidRuntime(5675): java.lang.RuntimeException: Unable to start receiver actforex.trader.services.ConnectionStateRceiver: android.content.ReceiverCallNotAllowedException: BroadcastReceiver components are not allowed to bind to services
09-23 08:53:42.054: E/AndroidRuntime(5675): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2431)
09-23 08:53:42.054: E/AndroidRuntime(5675): at android.app.ActivityThread.access$1500(ActivityThread.java:141)
09-23 08:53:42.054: E/AndroidRuntime(5675): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332)
09-23 08:53:42.054: E/AndroidRuntime(5675): at android.os.Handler.dispatchMessage(Handler.java:99)
09-23 08:53:42.054: E/AndroidRuntime(5675): at android.os.Looper.loop(Looper.java:137)
09-23 08:53:42.054: E/AndroidRuntime(5675): at android.app.ActivityThread.main(ActivityThread.java:5103)
09-23 08:53:42.054: E/AndroidRuntime(5675): at java.lang.reflect.Method.invokeNative(Native Method)
09-23 08:53:42.054: E/AndroidRuntime(5675): at java.lang.reflect.Method.invoke(Method.java:525)
09-23 08:53:42.054: E/AndroidRuntime(5675): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-23 08:53:42.054: E/AndroidRuntime(5675): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-23 08:53:42.054: E/AndroidRuntime(5675): at dalvik.system.NativeStart.main(Native Method)
09-23 08:53:42.054: E/AndroidRuntime(5675): Caused by: android.content.ReceiverCallNotAllowedException: BroadcastReceiver components are not allowed to bind to services
09-23 08:53:42.054: E/AndroidRuntime(5675): at android.app.ReceiverRestrictedContext.bindService(ContextImpl.java:159)
09-23 08:53:42.054: E/AndroidRuntime(5675): at actforex.trader.services.ConnectionStateRceiver.onReceive(ConnectionStateRceiver.java:47)
09-23 08:53:42.054: E/AndroidRuntime(5675): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2424)


BroadcastReceiver components are not allowed to bind to services - я так понял из этого класса подключиться к сервису нельзя? и как мне быть в таком случае?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.