Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
sysmustang
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 4
#1

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

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

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

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

Управление интернетом нескольких компьютеров, через один компьютер - C++
Имеется роутер, через который раздается интернет на несколько компьютеров по LAN соединению. Необходимо написать программу которая...

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

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

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

Реализовать алгоритм работы планировщика. Управление виртуальной памятью. Управление файловой системой - C++
Разработка программы менеджера памяти. Свопинг. Сегментная схема организации памяти. Управление виртуальной памятью. Глобальное и локальное...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
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/d...site.ggovernor). И вот это приложение отключает как мобильные данные, так и 3G, даже рут прав не надо.
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
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
106 / 106 / 40
Регистрация: 24.05.2015
Сообщений: 320
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
106 / 106 / 40
Регистрация: 24.05.2015
Сообщений: 320
10.10.2015, 14:30 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2015, 14:30
Привет! Вот еще темы с ответами:

Движение, вращение, управление движением, управление вращением фигуры - Pascal ABC
Написать программу, выполняющую четыре операции над графическим объектом(&quot;фигурой&quot;):движение,вращение,управление движением,управление...

Перенести управление стрелками на управление WASD - Delphi
Мне нужно чтобы в игре вместо стрелок управление осуществлялось WASD и при этом сами WASD не нажимались в игре. Для блокировки нажатия...

Соединение с интернетом - C++ Builder
Нужно проверить соединение с интернетом и далее взаимозависимости с результатом, выполнить определенную функцию???

Неполадки с интернетом - Софт
У меня подключен мегалаин, последнее время загружается всё туга, даже страницы ели ели. Может гдето настройки надо поправить. Кто знает...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.10.2015, 14:30
Ответ Создать тему
Опции темы

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