使用android隐藏功能来管理呼叫状态

时间:2013-12-31 17:50:49

标签: android function call state hidden

我是android编程的初学者。 我想使用“com.android.internal.telephony.call”包的隐藏方法“getState()”来管理传出呼叫的状态,例如激活,振铃,应答,拒绝和断开连接。 但是,“ ** ”指示的行中的以下代码中存在错误。

任何帮助?

我的代码是:

import com.android.internal.telephony.*;
public class MainActivity extends Activity {
Class myclass;
ClassLoader cloader;
Method f;
Object o;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    cloader = this.getClass().getClassLoader();
    try {
        myclass = cloader.loadClass("com.android.internal.telephony.Call");
        // No error generated. "Call" class will be loaded.
    }
    catch (Exception e)
    {
        System.out.println(e.toString());
    }
    try {
        f = myclass.getMethod("getState", null);
        // No error generated.Method "f" will be assigned
        } catch (Exception e) {
            System.out.println(e.toString());
        }
    Constructor constructors[] = myclass.getDeclaredConstructors();
    // There is one constructor only
    Constructor constructor = null;
    for (int i=0; i<constructors.length;i++)
    {
        constructor = constructors[i];
        if (constructor.getGenericParameterTypes().length == 0)
            break;
        }
    constructor.setAccessible(true);
    try {
            o = constructor.newInstance(null);
    //*****an exception generated here.
    //*****Exception is "java.lang.instantationexception"
    }
    catch (Exception e) {
        System.out.println(e.toString());
        }
    try {
        f = myclass.getMethod("getState", null);
        // No error
        } catch (Exception e) {
            System.out.println(e.toString());
            }
    }

1 个答案:

答案 0 :(得分:1)

不要试图像这样打电话给私人会员。它不适用于Android版本,甚至不适用于相同版本的制造商定制ROM。