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

时间:2016-04-01 09:44:32

标签: java android telephony telephonymanager

我在SDK23中有下一个应支持playDtmfTone()的类:

import android.telecom.Call;

public class myDtmf {

    public void myPlayDtmfTone() {

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

        mytone.playDtmfTone('0');
    }
}

线路中的呼叫()'呼叫mytone = new Call()'显示错误:

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

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

非常感谢。

1 个答案:

答案 0 :(得分:0)

在这种特定情况下,请参考Javadoc of Call

  

[通话]表示通话中应用应向用户显示的正在进行的通话。

所以"创造"真的没有意义。它的一个实例,因为这需要你实际创建一个到某个端点的实际电话。

通常,如果某个方法在包外无法访问,则您不应该访问它 - 它不是类开发人员提供的API的一部分。有一些方法可以访问它 - 特别是反射 - 但这很麻烦,并且它很可能不是你打算使用这个类的方式。

该类可以为您提供一些其他方法来创建实例,例如静态工厂方法(或外部工厂) - 但是,由于上述原因,在这种情况下也没有意义。