相关疑难解决方法(0)

如何以编程方式判断蓝牙设备是否已连接?(Android 2.2)

我知道如何获得配对设备列表,但我怎么知道它们是否已连接?

它必须是可能的,因为我看到它们列在我手机的蓝牙设备列表中,并说明了它们的连接状态.

android android-bluetooth

77
推荐指数
4
解决办法
11万
查看次数

检查耳机是否已插入

我似乎无法找到一种方法来了解Android是否插入了耳机.我发现了各种解决方案,但它们似乎总是返回假.唯一似乎正常工作的是a BroadcastReceiver,但这不是我需要的:

我只需要这样的东西

if(headphones plugged in) {
}
Run Code Online (Sandbox Code Playgroud)

有这样的功能吗?它需要一些特殊权限吗?

audio android headphones

22
推荐指数
3
解决办法
2万
查看次数

使用BroadcastReceiver的Awareness API和Android O.

我有一个Android应用程序,它使用Awareness API在插入耳机时设置围栏.

我使用代码实现了AwarenessFence,就像以下示例中所示:https://developers.google.com/awareness/android-api/fence-register.

我有一个PendingIntent定义为:

PendingIntent.getBroadcast(context, 0, new Intent("my.application.packageFENCE_RECEIVER_ACTION"), 0)
Run Code Online (Sandbox Code Playgroud)

然后在我的AndroidManifest.xml文件中

<receiver android:name=".fence.FenceDetector$MyFenceReceiver">
<intent-filter>
    <action android:name="my.application.packageFENCE_RECEIVER_ACTION" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

这是在Manifest中声明的,因为即使我的应用程序在后台,我也希望接收广播.

这在Android 7.0及更低版本上运行良好,但是当我在Android 8.0上运行时,我收到错误:

BroadcastQueue: Background execution not allowed: receiving Intent { act=my.application.packageFENCE_RECEIVER_ACTION
Run Code Online (Sandbox Code Playgroud)

我认为这是由于Android O上后台执行的新限制.

任何人都可以告诉我如何注册一个广播接收器,它可以在运行API 26的Android设备上在后台监听感知围栏触发器.

让我知道如果有些事情不清楚或者我需要详细说明.

提前致谢

android broadcastreceiver android-broadcastreceiver google-awareness android-8.0-oreo

16
推荐指数
2
解决办法
3816
查看次数

BroadcastReceiver用于拔下耳机

嗨,我正在开发一个应用程序,当从手机中删除耳机时生成一个事件.我用接收方法创建了一个广播接收器

public void onReceive(Context context, Intent intent) {

        // TODO Auto-generated method stub
        String action = intent.getAction();
        Log.i("Broadcast Receiver", "Hello");
        if( (action.compareTo(Intent.ACTION_HEADSET_PLUG))  == 0)   //if the action match a headset one
        {
            int headSetState = intent.getIntExtra("state", 0);      //get the headset state property
            int hasMicrophone = intent.getIntExtra("microphone", 0);//get the headset microphone property
            if( (headSetState == 0) && (hasMicrophone == 0))        //headset was unplugged & has no microphone
            {

                    //do whatever
            }
        }           

    }
Run Code Online (Sandbox Code Playgroud)

调用此方法如下

 IntentFilter receiverFilter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
        HeadSetBroadCastReceiver receiver …
Run Code Online (Sandbox Code Playgroud)

android

8
推荐指数
2
解决办法
1万
查看次数

Android M听android.os.action.DEVICE_IDLE_MODE_CHANGED

一旦设备进入打盹模式,第三方应用程序是否可以获得操作?

尝试注册广播接收器以执行以下操作,

<receiver android:name="com.doze.sample.DozemodeReceiver" android:enabled="true">
    <intent-filter>
        <action android:name=" android.os.action.DEVICE_IDLE_MODE_CHANGED" />
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

它不起作用(接收器没有被调用).

android android-6.0-marshmallow

7
推荐指数
2
解决办法
5301
查看次数

如何检测耳机功能

我知道如何检测耳机是否插入,但有些耳机(如三星EHS60ANNBE)来与暂停/播放(又名KeyEvent的.KEYCODE_HEADSETHOOK)按钮,没有了上一页/下一页...

我希望能够检测当前插入Android设备的耳机是否具有PREV/NEXT(又名KeyEvent.KEYCODE_ MEDIA_PREVIOUS /KeyEvent.KEYCODE_ MEDIA_NEXT).

这可能吗?

android headset android-audiomanager

6
推荐指数
1
解决办法
354
查看次数

在Android中如何注册接收耳机插头广播?

我在Android 2.1中工作,我想检测耳机插入/取出的时间.我对android很新.

我认为这样做的方法是使用广播接收器.我放弃了这个,我还在AndroidManifest.xml中添加了以下内容.但你是否必须在其他方面注册接收器,就像在活动中一样?我知道这有很多线索,但我真的不明白他们在谈论什么.另外,在AndroidManifest.xml中注册与在活动中动态注册之间的区别是什么?

<receiver android:enabled="true" android:name="AudioJackReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.HEADSET_PLUG" >
            </action>
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

这是该类的实现(加上进口)

public class AudioJackReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Log.w("DEBUG", "headset state received");
}
Run Code Online (Sandbox Code Playgroud)

}

我只是想看看它是否有效,但是当我在运行应用程序时拔下/插入耳机时没有任何显示.

编辑:文档没有说明这一点,但如果在清单中注册,这个可能无法正常工作吗?当我在我的一个应用程序中注册接收器时,我能够让它响应(或者你还必须这样做吗?)

android broadcastreceiver android-manifest android-intent

3
推荐指数
1
解决办法
9643
查看次数