Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
sysmustang
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 4
#1

Автоматическое управление 2G интернетом

06.10.2015, 13:14. Просмотров 888. Ответов 7
Метки нет (Все метки)

Добрый день уважаемые форумчане! Мне нужно из программы управлять радиомодулями, в частности 2G интернетом (мобильные данные). Я имею ввиду включение/отключение. Воспользовавшись поиском по форуму нашел подобные сообщения, там были примеры включения/отключения wi-fi и bluetooth, а вот за мобильные ничего. Порылся в документации, так ничего полезного не нашел Помогите, пожалуйста.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2015, 13:14
Ответы с готовыми решениями:

Проверить соединение с интернетом
Здравствуйте! Столкнулся с такой проблемой, приложение устанавливает коннект...

Каким способом вы определяете наличие соединения с интернетом
Знаю весь интернет кишит примерами... Но вот каким "хорошим", оптимальным...

Как выводить сообщение об отсутствии соединения с интернетом?
Здравствуйте! У меня в ViewPager загружаются 2 фрагмента. Каждый фрагмент...

Управление интернетом нескольких компьютеров, через один компьютер
Имеется роутер, через который раздается интернет на несколько компьютеров по...

Автоматическое управление сайтом
Здравствуйте! Подскажите пожалуйста! Мне необходимо сделать скрипт на повер...

7
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 738
06.10.2015, 13:22 #2
посредством SDK этого не сделать
0
sysmustang
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 4
06.10.2015, 13:31  [ТС] #3
Хмм.. Android это модифицированный линукс с ядром под ARM процессор. Устройство рутированое, я пробовал отключать и включать интерфейс (в моем случае rmnet0), только вот интернет не пашет. Скорее всего нужно задавать определенные настройки, такие как точка доступа, шлюз и т.д. Но вот по поводу Android приложения, существует такая вещь как 3G manager (http://4pda.ru/forum/index.php?showtopic=381461, https://play.google.com/store/apps/details?id=com.falsite.ggovernor). И вот это приложение отключает как мобильные данные, так и 3G, даже рут прав не надо.
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 738
06.10.2015, 14:08 #4
Упс, да) невнимательно прочитал вопрос. Думал надо переключаться с 2G на 3G и прочее.
Отключаться конечно можно из приложения
0
sysmustang
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 4
06.10.2015, 15:33  [ТС] #5
Еще бы знать как это сделать))
0
fraley
110 / 110 / 43
Регистрация: 24.05.2015
Сообщений: 329
06.10.2015, 17:52 #6
sysmustang, если речь идет о включение и выключение мобильного интернета вообще, то проверьте этот топик:
http://stackoverflow.com/questions/1...lly-on-android
Последний вариант 100% рабочий. Другие не проверял.
0
sysmustang
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 4
10.10.2015, 14:06  [ТС] #7
Я новичок в Android, до недавних пор единственное что знал -- все что под Android написано на Java. Скачал Android Studio, выбрал тему Empty Activity. И тут первый вопрос, должен быть класс main java, а его нет. Зато есть класс MainActivity.java, ну я туда все запихнул. В манифест добавил нужное разрешение, при установке оно спрашивается. Только вот почему-то мобильные данные не включаются. Мне нужно что бы сразу при входи в приложение включился мобильный инет. Что я делаю не так?
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
package ru.mustang.mustang2g;
 
import android.content.Context;
import android.net.ConnectivityManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
 
import java.lang.reflect.Field;
import java.lang.reflect.Method;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    public void mobiledataenable(boolean enabled) {
 
        try {
            final ConnectivityManager conman = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            final Class<?> conmanClass = Class.forName(conman.getClass().getName());
            final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
            iConnectivityManagerField.setAccessible(true);
            final Object iConnectivityManager = iConnectivityManagerField.get(conman);
            final Class<?> iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
            final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
            setMobileDataEnabledMethod.setAccessible(true);
            setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
 
        MainActivity enabaledata =  new MainActivity();
        enabaledata.mobiledataenable(true);
    }
}
0
fraley
110 / 110 / 43
Регистрация: 24.05.2015
Сообщений: 329
10.10.2015, 14:30 #8
Лучший ответ Сообщение было отмечено sysmustang как решение

Решение

sysmustang, нужно функцию MobileDataEnable вынести из onCreate.
В onCreate будет только вызов функции с параметром true, так как вы хотите чтоб интернет сразу был включен.
Примерно так:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
package ru.mustang.mustang2g;
 
import android.content.Context;
import android.net.ConnectivityManager;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
 
import java.lang.reflect.Field;
import java.lang.reflect.Method;
 
 
public class MainActivity extends ActionBarActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        MobileDataEnable(true);
    }
 
    public void MobileDataEnable(boolean enabled) {
 
        try {
            final ConnectivityManager conman = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
            final Class<?> conmanClass = Class.forName(conman.getClass().getName());
            final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
            iConnectivityManagerField.setAccessible(true);
            final Object iConnectivityManager = iConnectivityManagerField.get(conman);
            final Class<?> iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
            final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
            setMobileDataEnabledMethod.setAccessible(true);
            setMobileDataEnabledMethod.invoke(iConnectivityManager, enabled);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
}
1
10.10.2015, 14:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2015, 14:30

Автоматическое управление светом
С Arduino почти не знаком, собираюсь освоить... Опыт в программировании есть. ...

Автоматическое управление работой консольной программы
Есть программа x.bat. Вся работа с ней состоит из запуска, ввода «1» и нажатия...

Автоматическое управление учетными записями Active Directory
Добрый день, интересует такой вопрос: существуют ли программы, которые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru