2014-05-23 3 views
-1

이것은 지정된 웹 사이트에서 텍스트를 읽어야하는 코드이지만 변수 "result"는 단순히 결과를 출력하지 않습니다. 함수 main (null)을 실행할 수 없습니다. 앱이 호출 될 때마다 앱이 중단됩니다. (MainActivity의 onCreate()를 호출 중입니다)Eclipse android에서 웹 페이지 읽기

public class ConvertUrlToString { 

     public void main(String[] args) { 

      try { 
       webPage = "http://www.albab.pk/albab_edu/mashal/dsms.aspx"; 
       URL url = new URL(webPage); 
       URLConnection urlConnection = url.openConnection(); 
       InputStream is = urlConnection.getInputStream(); 
       InputStreamReader isr = new InputStreamReader(is); 

       int numCharsRead; 
       char[] charArray = new char[1024]; 
       StringBuffer sb = new StringBuffer(); 
       while ((numCharsRead = isr.read(charArray)) > 0) { 
        sb.append(charArray, 0, numCharsRead); 
       } 
       result = sb.toString(); 

      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 

     SmsManager sms = SmsManager.getDefault(); 
     PendingIntent piSent = PendingIntent.getBroadcast(this, 0, new Intent("SMS_SENT"), 0); 
     PendingIntent piDelivered = PendingIntent.getBroadcast(this, 0, new Intent("SMS_DELIVERED"), 0); 
     sms.sendTextMessage("+923018744545", null, "Hi There!", piSent, piDelivered); 
    } 

public void onReceive(Context arg0, Intent arg1) { 
       // TODO Auto-generated method stub 
       switch (getResultCode()) { 
       case Activity.RESULT_OK: 
        Toast.makeText(getBaseContext(), result, Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
        Toast.makeText(getBaseContext(), "Generic Failure", Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_NO_SERVICE: 
        Toast.makeText(getBaseContext(), "No Service", Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_NULL_PDU: 
        Toast.makeText(getBaseContext(), "Null PDU", Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_RADIO_OFF: 
        Toast.makeText(getBaseContext(), "Radio Off", Toast.LENGTH_SHORT).show(); 
        break; 
       default: 
        break; 
       } 

      } 
+0

문제는 내가 ConvertURLToString.main (null)을 실행할 수 없다는 것입니다. 단순히 앱을 충돌시킵니다. 누구든지 웹 콘텐츠를 읽는 코드의 오류를 도와 줄 수 있습니까? – user3668388

답변

0

코드가 정상적으로 처리되었으며 테스트를 마쳤습니다. 그것은 작동합니다. internet permission을 받았는지 확인하십시오. 당신의 AndroidManifest.xml에 이것을 추가하십시오. <uses-permission android:name="android.permission.INTERNET" />

또한 "eclipse android"라고 말하기 때문에 에뮬레이터를 통해 시도하고 있다고 가정합니다. 이 경우 컴퓨터가 프록시 뒤에 있는지 여부를 확인하십시오. 그렇다면 적절한 시스템 속성도 추가해야합니다.

System.setProperty("http.proxyHost", "your host name/ip"); 
System.setProperty("http.proxyPort", "your host port"); 

내가 작동한다고 말하면, 나는 main() 메소드에 대해 생각하고있다. PendingIntent.getBroadcast(this, 0, new Intent(result), 0);에 전화 할 때 결과 값이 클릭 전에 설정되어야합니다. 즉, 클릭 이벤트 이전에 기본 메소드가 호출되는지 확인해야합니다.

관련 문제