编辑文章 - 博客频道 - CSDN.NET

public boolean isCallConnected() {
boolean isAlive = false;


try {
Class connectionClass = Connection.class;
connectionClass = Class
.forName("com.android.internal.telephony.Connection");
Method isAliveMethod = connectionClass.getDeclaredMethod("isAlive",
(Class[]) null);


/*
* Method isAliveMethod =
* connectionClass.getDeclaredMethod("isRinging", (Class[]) null);
*/


isAliveMethod.setAccessible(true);


Connection connection = (Connection) connectionClass.newInstance();


try {
isAlive = (Boolean) isAliveMethod.invoke(connection,
(Object[]) null);


} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
Log.e("song", "song:illegal argument");
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
Log.e("song", "song:" + e.getMessage());
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
Log.e("song", "song:" + e.getMessage());
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
Log.e("song", "song: class not found");
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
Log.e("song", "song:no such method");
e.printStackTrace();
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}


return isAlive;


}

你可能感兴趣的:(编辑文章 - 博客频道 - CSDN.NET)