将声音路由至蓝牙耳机

发布于 2024-12-10 22:39:59 字数 1299 浏览 0 评论 0原文

我想将手机声音传送到蓝牙耳机。客户端已指示使用 iBluetoothA2DP 接口。但是使用 a2dp.connectSink() 请求 write_secure 设置权限,但该权限不可用。

请建议我一种方法,以防 iBluetoothA2Dp 无法实现。

这是我的代码

    private IBluetoothA2dp getIBluetoothA2dp() {
    IBluetoothA2dp ibta = null;

    try {
        Class<?> c2 = Class.forName("android.os.ServiceManager");

        Method m2 = c2.getDeclaredMethod("getService", String.class);
        IBinder b = (IBinder) m2.invoke(null, "bluetooth_a2dp");

        Class<?> c3 = Class.forName("android.bluetooth.IBluetoothA2dp");

        Class<?> c = c3.getDeclaredClasses()[0];
        Method m = c.getDeclaredMethod("asInterface", IBinder.class);

        m.setAccessible(true);
        ibta = (IBluetoothA2dp) m.invoke(null, b);
    } catch (Exception e) {
        toast("IBluetoothA2dp: " + e.toString());
    }

    return ibta;
}

这是我正在做的事情

   private void connectA2dp(boolean connect)
    {
        try
        {
            if (connect)
                a2dp.connectSink(device);

            else
                a2dp.disconnectSink(device);
        } 

        catch (RemoteException e)
        {
           e.printStackTrace();
        }
    }

编译器告诉我包含 write_secure _settings 权限,我无法使用该权限,因为 Android 不允许访问它。

I want to route my phone sound to Bluetooth Headset. Client has directed to use iBluetoothA2DP interface. But using a2dp.connectSink() asking for write_secure settings permission which is not available.

Please suggest me a way in case iBluetoothA2Dp is not possible.

Here is my code

    private IBluetoothA2dp getIBluetoothA2dp() {
    IBluetoothA2dp ibta = null;

    try {
        Class<?> c2 = Class.forName("android.os.ServiceManager");

        Method m2 = c2.getDeclaredMethod("getService", String.class);
        IBinder b = (IBinder) m2.invoke(null, "bluetooth_a2dp");

        Class<?> c3 = Class.forName("android.bluetooth.IBluetoothA2dp");

        Class<?> c = c3.getDeclaredClasses()[0];
        Method m = c.getDeclaredMethod("asInterface", IBinder.class);

        m.setAccessible(true);
        ibta = (IBluetoothA2dp) m.invoke(null, b);
    } catch (Exception e) {
        toast("IBluetoothA2dp: " + e.toString());
    }

    return ibta;
}

Here is what i m doing

   private void connectA2dp(boolean connect)
    {
        try
        {
            if (connect)
                a2dp.connectSink(device);

            else
                a2dp.disconnectSink(device);
        } 

        catch (RemoteException e)
        {
           e.printStackTrace();
        }
    }

The compiler is telling me to include write_secure _settings permission which I can't use as Android not give access to it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文