1

在以下页面上,我正在浏览 BluetoothHeadset 对象的 android 源代码: http ://androidxref.com/4.2.2_r1/xref/frameworks/base/core/java/android/bluetooth/BluetoothHeadset.java

现在在获取 BluetoothHeadset 对象后的代码中,我无法访问该方法:

public void phoneStateChanged(args...)

有谁知道为什么它无法访问?我尝试使用反射但没有效果......

我的代码:

 protected BluetoothProfile.ServiceListener headsetProfileListener = new BluetoothProfile.ServiceListener()
    {
        @Override
        public void onServiceConnected(int profile, BluetoothProfile proxy)
        {
            // mBluetoothHeadset is just a head set profile,
            // it does not represent a head set device.
            bluetoothHeadset = (BluetoothHeadset) proxy;
            bluetoothHeadset.phoneStateChanged(...); //this method doesnt get autocompleted or recognised
        }
    };

编辑:我知道android文档中没有提到该方法,但它可能在源代码中并且可能是私有的,我也运行一个Cyanogen rom,其中声明了函数......

这是一个尝试蓝牙和发送通知的应用程序......

我也是使用反射的新手,所以问题可能出在此处:

bluetoothHeadset.getClass().getDeclaredMethod("phoneStateChanged", null);
4

1 回答 1

0

该函数不是此处 API 的一部分:http: //developer.android.com/reference/android/bluetooth/BluetoothHeadset.html

如果它不是已发布 API 的一部分,则不能指望它。它实际上可能不在您正在使用的框架版本中。

于 2013-08-01T15:36:50.020 回答