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

Как заставить работать BroadcastReceiver? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Проверка подключения к интернету. Почему Exception игнорируется? http://www.cyberforum.ru/android-dev/thread1265474.html
Подскажите пожалуйста кто знает...отправляю емаил без инета, все равно пишет что сообщение ушло...вот код... private class sender_mail_async extends AsyncTask<Object, String, Boolean> { ProgressDialog WaitingDialog; @Override protected void onPreExecute() { WaitingDialog = ProgressDialog.show(SmsActivity.this, getString(R.string.data_send),...
Программирование Android Покадровая анимация Всем привет, возникла задача отрисовывать png картинки 24 раза в секунду (или больше) . Как правильно реализовать,, киньте пример. Спс http://www.cyberforum.ru/android-dev/thread1265465.html
Custom Action Overflow Программирование Android
Не подходит стандартный выпадающий список, потому что имеет тень и неподходящий цвет. Погуглил и наткнулся на PopupWindow. Использовать его или что-то другое?
Программирование Android Вывод списка писем с почтового аккаунта себе в list view
Пытаюсь вывести список почты из своего gmail акк.использую библиотеку javamail...опыта в программировании мало.Помогите....не знаю как при нажатии кнопки прикрутить письма из акк. Почты к адаптеру ListView и store.getFolder("INBOX"); подчеркивает красным...вот код...
Программирование Android Рисование на кнопке http://www.cyberforum.ru/android-dev/thread1265008.html
Как можно из кнопки сделать что-то типа ProgressBar со статическим обновлением заднего фона. Т.е. есть EditText и одна кнопка. В EditText, к примеру, вбивается число 50 и после этого кнопка окрашивается на 50% красным фоном. Если вбить 90, следовательно на 90%. Как осуществить? В какую сторону копать?
Программирование Android Несколько Asyntask Ребят, такая проблема. Хочу вызвать два Asyntask. В UI потоке пишу new connect.execute(); new ServerThread.execute(); Но запускается только первый и забирает управление на себя. Как их запустить параллельно? подробнее

Показать сообщение отдельно
spider1581
3 / 3 / 0
Регистрация: 30.09.2014
Сообщений: 50

Как заставить работать BroadcastReceiver? - Программирование Android

30.09.2014, 13:28. Просмотров 1667. Ответов 7
Метки (Все метки)

Добрый день! Собственно идея: есть стандартный плеер телефона(HTC One m7 Android 4.4.3) и проводная гарнитура с одной кнопкой. Но по нажатию на эту самую кнопку можно только делать плей\пауз и все! Хочу расширить функционал однокнопочной гарнитуры. Задача вроде как тривиальная, но столкнулся с проблемой, ресивер не слушает нажатие кнопки.
Код манифеста:
XML
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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.receivertest"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
        <receiver android:name=".MyBroadcastReceiver" >
            <intent-filter android:priority="2147483647" >
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
        </receiver>
    </application>
 
</manifest>
Код Ресивера:
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
package com.example.receivertest;
 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
 
public class MyBroadcastReceiver extends BroadcastReceiver {
    public MyBroadcastReceiver() {
        super();
    }
 
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals(Intent.ACTION_HEADSET_PLUG)) {
            
            if (intent.getExtras().getInt("state") == 1)// if plugged
                Toast.makeText(context, "earphones plugged", Toast.LENGTH_LONG)
                        .show();
            else
                Toast.makeText(context, "earphones un-plugged",
                        Toast.LENGTH_LONG).show();
        } else if (action.equals(Intent.ACTION_MEDIA_BUTTON)) {
            Toast.makeText(context, "button pressed", Toast.LENGTH_LONG).show();
            String key = intent.getExtras().getString("EXTRA_KEY_EVENT");
            Toast.makeText(context, key, Toast.LENGTH_LONG).show();
        }
 
    }
 
}
Код мейнактивити:
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
package com.example.receivertest;
 
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.AudioManager;
import android.os.Build;
import android.os.Bundle;
 
public class MainActivity extends Activity {
    MyBroadcastReceiver myBroadcastReceiver;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Получаем доступ к менеджеру звуков
 
        myBroadcastReceiver = new MyBroadcastReceiver();
        IntentFilter mediaFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
        mediaFilter.setPriority(2147483647);
        if (Build.VERSION.SDK_INT < 10)
            registerReceiver(myBroadcastReceiver, mediaFilter);
        else
            ((AudioManager) getSystemService(AUDIO_SERVICE))
                    .registerMediaButtonEventReceiver(new ComponentName(this,
                            MyBroadcastReceiver.class));
        registerReceiver(myBroadcastReceiver, new IntentFilter(
                Intent.ACTION_HEADSET_PLUG));
 
    }
}
Когда подключаю\отключаю гарнитуру ресивер срабатывает и на экран выводится тоаст, но при нажатии кнопки гарнитуры ничего не происходит. В чем ошибка не могу понять. Тыкните меня носом откуда копать. заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru