2012-03-13 28 views
0

私のアプリはエミュレータでうまくいきますが、実際のAndroid携帯電話(sony erricsson xperia、sony ericsson xperia mini)インターネット。電話機はEDGE/GPRSを使用してアクティブなインターネット接続を確立しています。実際の携帯電話(Android)でインターネットに接続できませんが、エミュレータで動作します

ここでクラスがあります:response()response_p()の両方のための

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 

import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.ResponseHandler; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.BasicResponseHandler; 
import org.apache.http.impl.client.DefaultHttpClient; 

public class get_string { 


    public String response_p (String url) 
    { 


      HttpClient client = new DefaultHttpClient(); 
      HttpGet request = new HttpGet(url.toString()); 

      ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
      String response_str = null; 
      try { 
       response_str = client.execute(request, responseHandler); 
      } catch (ClientProtocolException e) { 

       response_str="NOT"; 
      } catch (IOException e) { 

       response_str="NOT"; 
      } 

      return response_str; 


    } 

    public String response (String str) 
    { 
     String res=""; 
     try { 
      URL url = new URL(str); 
      HttpURLConnection con = (HttpURLConnection) url 
       .openConnection(); 
      res=readStream(con.getInputStream()); 
      } catch (Exception e) { 
      res="NOT"; 
     } 



     return res; 



    } 

    private String readStream(InputStream in) throws IOException { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
     String line = "",res=""; 
     while ((line = reader.readLine()) != null) { 
      res+=line; 
     } 

     return res; 
    } 




} 

同じ結果。

 </application> 
     <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
     <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    </manifest> 

どのように私はこの問題を解決することができます

ここでマニフェストファイルがですか?

+0

どのように電話からインターネットにアクセスしていますか? WiFiまたはGPRS経由でですか? – Android

+0

正確にどこが失敗しているか知っていますか?すべての失敗事例は文字列 "NOT"を返します。特定の理由を記録したり返さないのはなぜですか? – Rich

+0

@Android PhoneはGPRS –

答えて

1

私はresponse()とresponse_p()の両方をデフォルトのアクティビティクラスに移動しました。 私はまだそれがエミュレータと実際の電話で完璧に機能した理由は分かっていません。

1

この問題は、SIM固有またはデバイス固有の問題である可能性があります。別のSIMカードや他のデバイスを使用してアプリを試してみてください。これは、問題の良いアイデアを与え、私の答えを投票したくない人々は、私はまだ解説者バッジを得ていないので、私は答えとして私のコメントを書いています。あなたのURLがデバイスによって取得されていない可能性もあります。

+0

この回答をサポートするために、タブレットで同じ問題が発生しましたが、他のデバイスでは同じ問題が発生していたため、@Dineshが述べたように、デバイスやSIM固有の問題があります。他のデバイスを試してみてください。 – Mxyk

関連する問題