获取空值 [英] Getting null value
问题描述
我使用com.android.internal.telephony的API。在我叫了两个抽象类他们Call.java和Connection.java。你可以在这里找到这些类的http:// HI-机器人.INFO / src目录/ COM /安卓/内部/电话/ Call.java.html 并的 http://hi-android.info/src/com/android/internal/telephony/Connection.java.html 像
通话MYCALL =新的MyCall();
连接的myconn =新MyConnection的();
我需要使用getDisconnectCause方法从连接类,这是一个抽象方法,我用的是这样的:
的myconn = myCall.getEarliestConnection();
如果(的myconn == NULL){
的System.out.println(myconn是空******);
}其他
{
Connection.DisconnectCause原因= myConn.getDisconnectCause();
的System.out.println(+事业事业******值);
}
Call.java的子类是:
1。 CallManager的厘米= CallManager.getInstance();
2. Phone.State状态;
3。
4.公开名单<连接GT&; getConnections(){
5.状态= cm.getState();
6. ringingCall = cm.getForegroundCalls();
7.的System.out.println(**内getConnections =+状态);
8.的System.out.println(**内getConnections =+ ringingCall);
9.如果(ringingCall == NULL){
10的System.out.println(**电话是空***);
11.返回emptyConnections;
12.}
13.其他
14. {
15的System.out.println(**电话不是空***);
16.回报((呼叫)ringingCall).getConnections();
17.}
18. @覆盖
19.公用电话getPhone(){
20.返回NULL;
}
@覆盖
公共无效挂起()抛出CallStateException { } @覆盖
公共布尔isMultiparty(){
返回false;
}
公共连接
getEarliestConnection(){
表L;
很长一段时间= Long.MAX_VALUE;
连接C;
连接最早= NULL; 68. L = getConnections(); 如果(L == NULL){
返回null;
}否则如果(l.size()== 0)
{
返回null;
} 对于(INT I = 0,S = l.size(); I< S;我++){
C =(连接)l.get(I)
长吨; T = c.getCreateTime(); 如果(T<时间){
最早= C;
时间= T;
}
} 返回最早的;
} }而Connection.java子类:
类MyConnection的扩展连接{ @覆盖
公共无效cancelPostDial(){
// TODO自动生成方法存根 } @覆盖
公共字符串的getAddress(){
// TODO自动生成方法存根
返回null;
} @覆盖
公共电话的getcall(){
// TODO自动生成方法存根
返回null;
} @覆盖
众长getConnectTime(){
// TODO自动生成方法存根
返回0;
} @覆盖
众长getCreateTime(){
// TODO自动生成方法存根
返回0;
} @覆盖
公共DisconnectCause getDisconnectCause(){
// TODO自动生成方法存根
返回null;
} @覆盖
众长getDisconnectTime(){
// TODO自动生成方法存根
返回0;
} @覆盖
众长getDurationMillis(){
// TODO自动生成方法存根
返回0;
} @覆盖
众长getHoldDurationMillis(){
// TODO自动生成方法存根
返回0;
} @覆盖
公众诠释getNumber presentation(){
// TODO自动生成方法存根
返回0;
} @覆盖
公共PostDialState getPostDialState(){
// TODO自动生成方法存根
返回null;
} @覆盖
公共字符串getRemainingPostDialString(){
// TODO自动生成方法存根
返回null;
} @覆盖
公共UUSInfo getUUSInfo(){
// TODO自动生成方法存根
返回null;
} @覆盖
公共无效挂起()抛出CallStateException {
// TODO自动生成方法存根 } @覆盖
公共布尔isIncoming(){
// TODO自动生成方法存根
返回false;
} @覆盖
公共无效proceedAfterWaitChar(){
// TODO自动生成方法存根 } @覆盖
公共无效proceedAfterWildChar(字符串为arg0){
// TODO自动生成方法存根 } @覆盖
公共无效分离()抛出CallStateException {
// TODO自动生成方法存根 }
}
编辑2:我已经编辑1号线到17 PLZ检查。线路上无java.util.Collections中的错误:16号线:我收到java.lang.ClassCastException。68
任何人可以帮助我解决这个问题。而且我正在通话的状态只有一个即总是空的,即使调用不是空的。我越来越else部分内。 plz帮助我。
@覆盖
公开名单<连接GT&; getConnections(){
返回null;
}
在的MyCall
类此方法返回null并在code为 MyCall.getEarliestConnection();
它返回null如果 getConnections()
收益空
。
I am using com.android.internal.telephony API's. In that I called two abstract classes they are Call.java and Connection.java. You can find these classes here http://hi-android.info/src/com/android/internal/telephony/Call.java.html and http://hi-android.info/src/com/android/internal/telephony/Connection.java.html for these created subclasses like
Call myCall = new MyCall();
Connection myConn = new MyConnection();
I need to use getDisconnectCause method from connection class which is an abstract method, I used like this:
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);
}
The subclass of Call.java is:
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.
Can anybody help me to resolve this. And also I am getting only one state of call i.e IDLE always even though the call is not-null . I am getting inside else part. plz help me.
@Override
public List<Connection> getConnections() {
return null;
}
This method on your MyCall
class returns null and in your code for MyCall.getEarliestConnection();
it returns null if getConnections()
returns null
.
这篇关于获取空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!