Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: SetVisibility не работает для RadioGroup

Здравствуйте. Почему-то команда setVisibility(9) не работает для radioGroup..
Хочу, чтобы при выбранном параметре менялся набор radioButtons. Удалось скрыть их через .xml, но не вернуть в .class. Где косячу?


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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 public void onRadioClick (View v) {
 
 
        RadioGroup radiogroup1 = (RadioGroup)findViewById(R.id.radioGroup1);
 
        RadioGroup radiogroup2 = (RadioGroup)findViewById(R.id.radioGroup2);
        RadioGroup radiogroup3 = (RadioGroup)findViewById(R.id.radioGroup3);
        Intent answerIntent = new Intent();
 
        int idM = MainActivity.idM;
        if (idM == 1) {
 
            radiogroup1.setVisibility(0); // так же пробовал setVisibility(View.VISIBLE)
 
            switch (v.getId()) {
                case R.id.radioDog:
                    answerIntent.putExtra(THIEF, "Пёсик");
                    break;
                case R.id.radioCrow:
                    answerIntent.putExtra(THIEF, "Ворона");
                    break;
                case R.id.radioCat:
                    answerIntent.putExtra(THIEF, "Котик");
                    break;
 
                default:
                    break;
 
 
            }
            setResult(RESULT_OK, answerIntent);
            finish();
 
        } else if (idM == 2) {
 
 
 
 
            switch (v.getId()) {
                case R.id.radioSpeeder:
 
                    answerIntent.putExtra(CAR, "Кот гонщик");
                    break;
                case R.id.radioFlyer:
                    answerIntent.putExtra(CAR, "Белка летун");
                    break;
                case R.id.radioZub:
                    answerIntent.putExtra(CAR, "Зубочистка");
                    break;
 
                default:
                    break;
 
            }setResult(RESULT_OK, answerIntent);
            finish();
        } else {
 
 
            switch (v.getId()) {
                case R.id.radioBegemot:
                    answerIntent.putExtra(ARBUZ, "Бегемот");
                    break;
                case R.id.radioRoma:
                    answerIntent.putExtra(ARBUZ, "Рома");
                    break;
                case R.id.radioRain:
                    answerIntent.putExtra(ARBUZ, "Дождь");
                    break;
 
                default:
                    break;
 
 
            }setResult(RESULT_OK, answerIntent);
            finish();
 
        }
 
 
 
    }
Ответ: Если оставить один набор Radio Group, но отправляющий разные значения, то все работает корректно.

Добавлено через 11 часов 21 минуту
Методом тыка заметил в программе, что radiogroup все так удаляются ненужные, но только после того, как я выбрал один из вариантов. Убирается на доли секунд перед отправлением и переходом из активности.. А надо, чтобы сразу.

Добавлено через 11 минут
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package ru.owngames.sherlok;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
 
 
public class MainActivity extends AppCompatActivity {
 
 
 
    static final private int CHOOSE_THIEF = 0;
    static final private int CHOOSE_CAR = 1;
    static final private int CHOOSE_ARBUZ = 2;
    static public int idM;
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
 
 
 
    //MENU
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
 
        int id = item.getItemId();
        TextView questText = (TextView) findViewById(R.id.textQuestion);
        TextView answerText = (TextView)findViewById(R.id.textViewInfo);
 
        //операция для пунктов выбора меню
        switch (id) {
            case R.id.action_question1:
                questText.setText("Кто украл сосиску?");
                answerText.setText("");
                idM = 1;
                return true;
 
            case R.id.action_question2:
                questText.setText("Кто купил машинку?");
                answerText.setText("");
                idM = 2;
                return true;
 
            case R.id.action_question3:
                questText.setText("Кто съел арбуз?");
                answerText.setText("");
                idM = 3;
                return true;
 
            default:
                idM = 1;
                // answerText.setText("");
                return super.onOptionsItemSelected(item);
        }
 
    }
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
 
 
    }
 
 
    public void onClick(View v){
 
 
        Intent questionIntent = new Intent(MainActivity.this,SecondActivity.class);
 
        if (idM == 1){
 
            startActivityForResult(questionIntent, CHOOSE_THIEF);
        }
        else if (idM == 2){
 
            startActivityForResult(questionIntent, CHOOSE_CAR);
        }
        else if(idM == 3){
 
            startActivityForResult(questionIntent, CHOOSE_ARBUZ);
        }
 
 
 
 
 
    }
 
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        super.onActivityResult(requestCode,resultCode,data);
 
        TextView infoTextView = (TextView)findViewById(R.id.textViewInfo);
 
        if(requestCode == CHOOSE_THIEF){
            if(resultCode == RESULT_OK){
                String thiefname = data.getStringExtra(SecondActivity.THIEF);
                infoTextView.setText(thiefname);
            }else{
                infoTextView.setText("");
            }
        }
 
        if(requestCode == CHOOSE_CAR){
            if(resultCode == RESULT_OK){
                String carname = data.getStringExtra(SecondActivity.CAR);
                infoTextView.setText(carname);
            }else{
                infoTextView.setText("");
            }
        }
        if(requestCode == CHOOSE_ARBUZ){
            if(resultCode == RESULT_OK){
                String arbuzname = data.getStringExtra(SecondActivity.ARBUZ);
                infoTextView.setText(arbuzname);
            }else{
                infoTextView.setText("");
            }
        }
    }
}

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package ru.owngames.sherlok;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioGroup;
import android.widget.TextView;
 
 
public class SecondActivity extends AppCompatActivity {
 
    public final static String THIEF = "ru.owngames.sherlok.THIEF";
    public final static String CAR = "ru.owngames.sherlok.CAR";
    public final static String ARBUZ = "ru.owngames.sherlok.ARBUZ";
 
 
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
 
 
    }
 
 
 
 
 
 
    public void onRadioClick (View v) {
 
 
        RadioGroup rp1 = (RadioGroup)findViewById(R.id.radioGroup1);
        RadioGroup rp2 = (RadioGroup)findViewById(R.id.radioGroup2);
        RadioGroup rp3 = (RadioGroup)findViewById(R.id.radioGroup3);
 
 
        Intent answerIntent = new Intent();
 
        int idM = MainActivity.idM;
        if (idM == 1) {
 
 
            rp3.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
 
            switch (v.getId()) {
                case R.id.radioDog:
                    answerIntent.putExtra(THIEF, "Пёсик");
                    break;
                case R.id.radioCrow:
                    answerIntent.putExtra(THIEF, "Ворона");
                    break;
                case R.id.radioCat:
                    answerIntent.putExtra(THIEF, "Котик");
                    break;
 
                default:
                    break;
 
 
            }
            setResult(RESULT_OK, answerIntent);
            finish();
 
        } else if (idM == 2) {
 
 
 
            rp1.setVisibility(View.GONE);
            rp3.setVisibility(View.GONE);
            switch (v.getId()) {
                case R.id.radioSpeeder:
 
                    answerIntent.putExtra(CAR, "Кот гонщик");
                    break;
                case R.id.radioFlyer:
                    answerIntent.putExtra(CAR, "Белка летун");
                    break;
                case R.id.radioZub:
                    answerIntent.putExtra(CAR, "Зубочистка");
                    break;
 
                default:
                    break;
 
            }setResult(RESULT_OK, answerIntent);
            finish();
        } else if (idM == 3){
 
            rp1.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
            switch (v.getId()) {
                case R.id.radioBegemot:
                    answerIntent.putExtra(ARBUZ, "Бегемот");
                    break;
                case R.id.radioRoma:
                    answerIntent.putExtra(ARBUZ, "Рома");
                    break;
                case R.id.radioRain:
                    answerIntent.putExtra(ARBUZ, "Дождь");
                    break;
 
                default:
                    break;
 
 
            }setResult(RESULT_OK, answerIntent);
            finish();
 
        }
 
 
 
    }
 
}
Добавлено через 10 часов 54 минуты
Кому интересно, всё оказалось проще некуда. Изначально ниже написанную часть кода я добавил в метод "onRadioClick" и удивлялся, почему не работало нормально))

Перенес в onCreate и заработало как надо.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 RadioGroup rp1 = (RadioGroup)findViewById(R.id.radioGroup1);
        RadioGroup rp2 = (RadioGroup)findViewById(R.id.radioGroup2);
        RadioGroup rp3 = (RadioGroup)findViewById(R.id.radioGroup3);
 
        if(idM == 1){
            rp3.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
        }
        else if(idM == 2){
            rp1.setVisibility(View.GONE);
            rp3.setVisibility(View.GONE);
        }
        else{
            rp1.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
        }
Вопрос: Не работает Handler

Я нахожусь на 66 уроке startandroid, здесь упоминается Handler. Почему то отсутствуют у меня методы, которые описываются тут. Вот фрагмент кода:
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void onclick(View v) {
showDialog(DIALOG);
Handler h = new Handler();
h.postDelayed(new Runnable() {
public void run() {
method1();
}
}, 2000);
h.postDelayed(new Runnable() {
public void run() {
method2();
}
}, 4000);
}
Когда я объявляю Handler, у меня создаются три метода сами:
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 h=new Handler() {
                    @Override
                    public void close() {
 
                    }
 
                    @Override
                    public void flush() {
 
                    }
 
                    @Override
                    public void publish(LogRecord record) {
 
                    }
Когда же я хочу, например, написать h.postDelayed-Такого метода нет вообще, равно как и метода h.sendEmptyMessageDelayed и прочих. Помогите пожалуйста
Ответ: Паблито, ой, спасибо огромное! Почему то студия не предложила мне на выбор, какой импортировать, обычно предлагает.
Вопрос: Коллекция из parcelable объектов передается в активити с вызовом исключения

Суть в том, что в одной активити я создаю коллекцию из объектов. Но это не просто коллекция, там есть объекты и их наследники, приведенные к одному родительскому типу.

Грубо говоря, коллекция состоит из элементов A и B, причем B extends A
Эту коллекцию, я кладу в Bundle и передаю через Intent.

При этом, для класса A имплементирую интерфейс Parcelable, со всеми необходимыми методами, также, я создаю реализации всех этих методов и в классе наследнике B.

В итоге, код работет как надо, в целевой активити я ловлю и разбираю коллекцию, но в логах выскакивает следующее исключение:

Parcel: Class not found when unmarshalling: mypackage.B ... java.lang.ClassNotFoundException

(работаю в Android Studio, сразу тестирую на устройстве)

Как исправить эту проблему и что это значит?
Заранее спасибо, всем кто поможет, или не поможет а прочтет...
Ответ: да нет, не помогло=(. Странно, что с передачей данных проблем нет. Данные передаются, а исключение почему то выкидывает всегда, как бы я parcelable не конфигурировал. Почти все случаи о которых читал на stackoverflow, говорят о том, что такая ошибка может повляться когда неправильно определен ClassLoader. пытался я и его явно прописать, через getClassloader, ничего у меня из этого не вышло.
Вопрос: Не работает replace

Почему то не работает
Java
1
2
  String sSpeed = Double.toString(speed);
            sSpeed.replace(".","@");
точка не меняется на @
почему .. непонятно.
Ответ: sSpeed=sSpeed.replace(".","@"); - точно! Дело было в моей невнимательности, но почему компилятор пропустил... непонятно
теперь все работает, спасибо
Вопрос: Layout_columnSpan не работает в grid_layout

Приветствую.
Почему то layout_columnSpan не хочет расширять EditText на две колонки. Как можно поправить?
Пробовал в Android Studio 3.2.1.
И ещё вопрос, как установить свойство layout_width , что бы компонент editText автоматически подстраивался под ширину колонки?

Кликните здесь для просмотра всего текста

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<android.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="2"
    android:rowCount="2"
    android:useDefaultMargins="true"
    tools:context=".MainActivity">
 
 
    <EditText
        android:id="@+id/editText3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="0"
        android:layout_column="0"
        android:layout_columnSpan="2"
        android:ems="8"
        android:inputType="number" />
</android.widget.GridLayout>
Ответ: ExFau$t, match_parent делает сразу на всю длину экрана, а columnSpan так и не хочет работать.

Добавлено через 6 часов 14 минут
Нашёл решение.

XML
1
android:layout_gravity="center_horizontal|fill_horizontal"
Вопрос: ExtractEditText не работает в паре

Привет друзья такой вопрос, добавляю на фрагмент 3 штуки ExtractEditText c разными параметрами, проблема в том что когда запускаю на Эмуляторе могу редактировать только одну ExtractEditText все остальные не нажимаются почему-то.

Добавлено через 32 минуты
Минут 30 пытаюсь понять в чем проблема.... просто не понимаю((( почему только на 1 ExtractEditText могу кликать и вводить текст, ведь все были собраны одинаково

Добавлено через 2 часа 56 минут
Друзья! может кто то помочь в данной проблеме ?
Ответ: обычный EditText для слабаков и не подходит?
Вопрос: Ошибка записи диктофона

В чем шутка юмора был рабочий код прошло 4 дня и перестал работать.
Запись идет в потоке.
На реальном устройстве не выдает ошибок.
код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
recorder = new MediaRecorder();
 
            recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            recorder.setOutputFile(audiofile.getAbsolutePath());
            try {
                recorder.prepare();
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try{recorder.start();}catch (Exception e){Log.i("MyMsg","EROR "+e.toString() );}

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
08-17 22:15:16.257 336-472/system_process E/AudioTrack: Could not get audio output for stream type 1
08-17 22:15:16.257 336-472/system_process E/SoundPool: Error creating AudioTrack
08-17 22:15:16.329 13553-13581/? E/AudioRecord: Unsupported configuration: sampleRate 8000, format 1, channelMask 0x10
08-17 22:15:16.329 13553-13581/? E/StagefrightRecorder: audio source is not initialized
08-17 22:15:16.329 13392-13713/? E/MediaRecorder: start failed: -2147483648
08-17 22:15:16.329 13392-13713/? E/AndroidRuntime: FATAL EXCEPTION: OutCallWrite
                                                   java.lang.RuntimeException: start failed.
                                                       at android.media.MediaRecorder.start(Native Method)
                                                       at com.postal.om.postal.catchPhone.Call.CallInThread.recordStart(CallInThread.java:75)
                                                       at com.postal.om.postal.catchPhone.Call.CallInThread.run(CallInThread.java:42)
                                                       at java.lang.Thread.run(Thread.java:856)
08-17 22:15:16.581 13553-13558/? A/libc: Fatal signal 11 (SIGSEGV) at 0x00000038 (code=1), thread 13558 (Binder_1)
08-17 22:15:16.797 13554-13554/? E/local_camera: We have a problem with the hw connection 22 (Invalid argument)
08-17 22:15:16.797 13555-13555/? E/local_camera: We have a problem with the hw connection 22 (Invalid argument)
08-17 22:15:16.825 336-432/system_process E/Genymotion: Could not open '/sys/class/power_supply/genymotion_fake_path/present'
08-17 22:15:16.873 13722-13722/? E/AudioFlinger: int android::load_audio_interface(char const*, audio_hw_device_t**) couldn't open audio hw device in audio.primary (Operation not permitted)
08-17 22:15:16.873 13722-13722/? E/AudioPolicyManagerBase: Not output found for attached devices 00000002
08-17 22:15:16.873 13722-13722/? E/AudioPolicyManagerBase: Failed to open primary output
08-17 22:15:16.873 13722-13722/? E/AudioPolicyManagerBase: getDeviceForStrategy() speaker device not found for STRATEGY_SONIFICATION
08-17 22:15:16.873 13722-13722/? E/AudioPolicyManagerBase: getDeviceForStrategy() speaker device not found for STRATEGY_SONIFICATION
08-17 22:15:16.873 13722-13722/? E/AudioPolicyService: couldn't init_check the audio policy (No such device)
08-17 22:15:16.873 13722-13722/? E/genymotion_audio: Error in mixer_open
08-17 22:15:17.885 574-574/com.android.phone E/BluetoothPhoneService: Could not get a handle on Connection object for the call
08-17 22:15:17.885 574-574/com.android.phone E/BluetoothPhoneService: Could not get a handle on Connection object for the call
Раньше почему то работало сейчас пишет нет микрофона, все дела. может в потоке записывать нельзя?
Ответ: vxg, приложение работало в эмуляторе и на реальном устройстве (мой телефон). Теперь на эмуляторе ошибку выдает. Я бы забил и тестил на реальном устройстве, но есть ф-и которые нужно проверять на эмуляторе (работа с севером, передача данных на сервер). Может быть такое что на эмуляторе из за моей программы завис какой то аудио поток или что то подобное, и теперь не работает даже после перезагрузки эмулятора?
Вопрос: Не работает мобильный интернет после перепрошивки на с Android 4.2.2 на Android 4.2.2

Всем привет. После перепрошивки телефона почему-то перестал работать мобильный интернет. До этого все было гуд. Прошивал с помощью SP_Flash_Tool_v3.1324.0.177. Wifi ловит и работает отлично. С сетью все в порядке. Симка на планшете работает с интернетом норм. Настройки APN настроены правильно. Передача данных включена. Баланс положительный. Откатиться к сожалению уже не могу, т.к. бэкап не делал. Куда копать подскажите плиз.
Ответ: и вам спасибо, что решение огласили
век живи как говориться... ктоб подумал что замут в карте памяти...
Вопрос: Не работает for после else

Добрый вечер! Не могу найти ошибку почему не работает for после else
Не работает на 32 строке
Код Java(TM) 2 Platform Standard Edition 5.0
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
//первый if
            if(_1Sb)
            {
                for (int i = 0; i < _1S; i++)
                {
                    //задаем значения точки
                    XS1[i] = (float) (Xc + 100 * Math.cos(fiS1[i]));
                    YS1[i] = (float) (Yc + 100 * Math.sin(fiS1[i]));
                    fiS1[i] += acc;
 
                    // если меньше 150, записываем в массив точек
                    if (k<150)
                    {
                        _1Spx[k] = XS1[i];
                        _1Spy[k] = YS1[i];
                        Log.e("_1Spx = ", Integer.toString(k) + " " + Float.toString(_1Spx[k]));
                        Log.e("_1Spy = ", Integer.toString(k) + " " + Float.toString(_1Spy[k]));
                        k++;
                    }else
                    // иначе удаляем самую последнею и переписываем точки
                    {
                        for (int j = 0; j < 148; j++)
                        {
                            _1Spx[j] = _1Spx[j + 1];
                            _1Spy[j] = _1Spy[j + 1];
                        }
                        _1Spx[149] = XS1[i];
                        _1Spy[149] = YS1[i];
                    }
 
                    // рисуем линию
                    for (int j = 1; j > 149; j++ )
                    {
                        Log.e("test111", Float.toString(_1Spx[j])); ----- этот лог не выводи
                        if(_1Spx[j] != 0)
                        {
                            Log.e("DrawLine", "drawLine"); ------------ этот тоже
                            canvas.drawLine(_1Spx[j - 1], _1Spy[j - 1], _1Spx[j], _1Spy[j], paintLine);
                        }
                    }
 
 
                    //Draw ball
                    canvas.save(); //Save the position of the canvas.
                    canvas.drawBitmap(ballS1[i], XS1[i], YS1[i], null); //Draw the ball on the rotated canvas.
                    canvas.restore(); //Rotate the canvas back so that it looks like ball has rotated.
 
                }
            }
Ответ: Так условие не правильное. В том цикле, знак больше, нужно заменить на меньше.
А уже разобрались. Бывает, задать вопрос на форуме - уже помощь
Вопрос: Не работает AlarmManger

Всем добрый день.

Пробую запустить AlarmManager, но видимо, где-то что-то упустил.

в MainActivity:
Java
1
2
3
4
5
    @Override
    protected void onResume() {
        super.onResume();
        AlarmManagerReceiver.SetAlarm(this);
}
в Бродкасте:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class AlarmManagerReceiver extends BroadcastReceiver {
 
    @Override
    public void onReceive(Context context, Intent intent) {
        PowerManager pm=(PowerManager) context.getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wl= pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"TAG");
        
       Toast.makeText(context,"Alarm",Toast.LENGTH_SHORT).show();
 
    }
 
    public static void SetAlarm(Context context)
    {
        AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intent=new Intent(context, AlarmManagerReceiver.class);
        PendingIntent pi= PendingIntent.getBroadcast(context,0, intent,0);
        am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),10000,pi);
    }
}
в Манифесте:
XML
1
2
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<receiver android:name=".receivers.AlarmManagerReceiver"/>
Программу запускаю, но тоаст так и не показывается. Где я мог что-то упустить? Заранее, спасибо за помощь!
Ответ: Паблито, спасибо за помощь, этот пермишен я добавил сразу когда добавлял интент, в конечном итоге я немного иначе разбил класcы сделал два бродкаста и заработало, не знаю, что именно помогло, но возможно кому-то понадобиться рабочий пример:
Manifest:
Java
1
2
3
4
5
6
7
8
9
10
11
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
 
        <receiver android:name=".receivers.BootReceiver"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"></action>
            </intent-filter>
        </receiver>
 
        <receiver android:name=".receivers.AlarmManagerReceiver" android:enabled="true"/>
Настройка аларм менеджера
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class AlarmActivity {
 
    public static void SetAlarm(Context context)
    {
        // Set the alarm to start at approximately 23:00 p.m.
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.set(Calendar.HOUR_OF_DAY, 23);
 
        AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intent=new Intent(context, AlarmManagerReceiver.class);
        PendingIntent pi= PendingIntent.getBroadcast(context,0, intent,0);
        //Set the interval
        am.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.currentTimeMillis(),AlarmManager.INTERVAL_DAY,pi);
    }
}
BootReceiver:
Java
1
2
3
4
5
6
7
8
public class BootReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
            AlarmActivity.SetAlarm(context);
        }
    }
}
AlarmManagerReceiver
Java
1
2
3
4
5
6
7
8
9
public class AlarmManagerReceiver extends BroadcastReceiver {
 
    public static final String EVERY_DAY="everyday";
 
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"Alarm",Toast.LENGTH_SHORT).show();
    }
}
Стоит сказать, что у меня изначально стояло повторение раз в 10 секунд, но почему то сообщение выводилось только раз в минуту, не знаю с чем это связано, но так как мне достаточно раз в день, то дальше не копался.