Call() 不是 public in android.telecom.Call,无法从外部包访问

Call() is not public in android.telecom.Call, Cannot be accessed from outside package

我在 SDK23 中有下一个 class 应该支持 playDtmfTone() :

import android.telecom.Call;

public class myDtmf {

    public void myPlayDtmfTone() {

        Call mytone = new Call();  // error here for Call()

        mytone.playDtmfTone('0');
    }
}

'Call mytone = new Call()' 行中的 Call() 显示错误:

Call() 不在 android.telecom.Call 中 public,无法从外部包访问。

如何使 Call() public 或使其可访问?

非常感谢。

在这种特定情况下,指的是 Javadoc of Call:

[Call] Represents an ongoing phone call that the in-call app should present to the user.

因此 "create" 它的实例实际上没有意义,因为这需要您实际创建对某个端点的实际 phone 调用。


一般来说,如果无法在包外访问某个方法,则您不应访问它 - 它不是 class 开发人员提供的 API 的一部分。有一些方法可以访问它 - 具体来说,反射 - 但这是 hacky 并且它不太可能是你打算使用 class.

的方式

class 可能会为您提供一些其他方法来创建实例,例如静态工厂方法(或外部工厂)——但是,由于上述原因,这在这种情况也是。