BluetoothHeadset - 无法访问公共方法

时间:2013-08-01 15:33:58

标签: android reflection bluetooth

在下一页上,我正在浏览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);

1 个答案:

答案 0 :(得分:0)

此功能不属于API的一部分:http://developer.android.com/reference/android/bluetooth/BluetoothHeadset.html

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