私はcom.android.internal.telephony APIを使用しています。その中で私は2つの抽象クラスを呼び出しました。それらはCall.javaとConnection.javaです。あなたがここにnull値を取得する
Call myCall = new MyCall();
Connection myConn = new MyConnection();
のように、これらの作成したサブクラスのhttp://hi-android.info/src/com/android/internal/telephony/Call.java.htmlとhttp://hi-android.info/src/com/android/internal/telephony/Connection.java.htmlをこれらのクラスを見つけることができます私はこのように使用し、抽象メソッドで接続クラスからgetDisconnectCauseメソッドを使用する必要があります。
myConn = myCall.getEarliestConnection();
if(myConn == null){
System.out.println("myConn is null ******");
}else
{
Connection.DisconnectCause cause = myConn.getDisconnectCause();
System.out.println("value of cause ******"+cause);
}
サブクラスCall.javaは次のとおりです。
1. CallManager cm = CallManager.getInstance();
2. Phone.State state;
3.
4. public List<Connection> getConnections() {
5. state = cm.getState();
6. ringingCall = cm.getForegroundCalls();
7. System.out.println("**inside getConnections="+state);
8. System.out.println("**inside getConnections="+ringingCall);
9. if (ringingCall == null) {
10. System.out.println("**call is null***");
11. return emptyConnections;
12. }
13. else
14. {
15. System.out.println("**call is not null***");
16. return ((Call) ringingCall).getConnections();
17. }
18. @Override
19. public Phone getPhone() {
20. return null;
}
@Override
public void hangup() throws CallStateException {
}
@Override
public boolean isMultiparty() {
return false;
}
public Connection
getEarliestConnection() {
List l;
long time = Long.MAX_VALUE;
Connection c;
Connection earliest = null;
68. l = getConnections();
if (l == null) {
return null;
}else if (l.size() == 0)
{
return null;
}
for (int i = 0, s = l.size() ; i < s ; i++) {
c = (Connection) l.get(i);
long t;
t = c.getCreateTime();
if (t < time) {
earliest = c;
time = t;
}
}
return earliest;
}
}
AND the Connection.java subclass is:
class MyConnection extends Connection{
@Override
public void cancelPostDial() {
// TODO Auto-generated method stub
}
@Override
public String getAddress() {
// TODO Auto-generated method stub
return null;
}
@Override
public Call getCall() {
// TODO Auto-generated method stub
return null;
}
@Override
public long getConnectTime() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getCreateTime() {
// TODO Auto-generated method stub
return 0;
}
@Override
public DisconnectCause getDisconnectCause() {
// TODO Auto-generated method stub
return null;
}
@Override
public long getDisconnectTime() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getDurationMillis() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getHoldDurationMillis() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getNumberPresentation() {
// TODO Auto-generated method stub
return 0;
}
@Override
public PostDialState getPostDialState() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getRemainingPostDialString() {
// TODO Auto-generated method stub
return null;
}
@Override
public UUSInfo getUUSInfo() {
// TODO Auto-generated method stub
return null;
}
@Override
public void hangup() throws CallStateException {
// TODO Auto-generated method stub
}
@Override
public boolean isIncoming() {
// TODO Auto-generated method stub
return false;
}
@Override
public void proceedAfterWaitChar() {
// TODO Auto-generated method stub
}
@Override
public void proceedAfterWildChar(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void separate() throws CallStateException {
// TODO Auto-generated method stub
}
}
EDIT 2 : I have edited line number 1 to 17. Plz check this. I am getting java.lang.ClassCastException: java.util.Collections error on Line No: 16 and Line No:68.
は、誰もがこれを解決するために私を助けることができます。また、コールがヌルではないにもかかわらず、常にIDLEという1つのコール状態しか得られません。私は他の部分の中に入っています。 plzは私を助けます。
次に何をすればよいですか? getConnectionsメソッドの実装方法plzは私を助けます。 Thx事前に – shiv1229
私はあなたがGoogleで見てみる自分自身を作成しようとする代わりに使用できる接続と呼び出しの実装があると思う – James
あなたが探しているものを保持するかもしれない 'com.android.internal.telephony.CallManager' 。 – James