2014-02-03 1 views
0

Привет всем Я хочу, чтобы отправить два параметра на серверандроид отправить два параметра на сервер

  1. андроид идентификатор
  2. установлена ​​информация приложение

Я написал код, чтобы узнать установленное приложение и печати в logcat, а также android_id, но когда я пытаюсь отправить установленную информацию о приложении на сервер, у меня есть ошибка

Код

public class MainActivity extends Activity { 
    String AppName; 
    String android_id; 
    PackageInfo packageInfo; 
    String installedapps; 
    StringBuilder sb; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     android_id = Secure.getString(MainActivity.this.getContentResolver(), 
       Secure.ANDROID_ID); 

     getInstalledApps(); 

    } 

    public void getInstalledApps() { 
     List<PackageInfo> PackList = getPackageManager() 
       .getInstalledPackages(0); 

     sb = new StringBuilder(); 

     for (int i = 0; i < PackList.size(); i++) { 

      PackageInfo PackInfo = PackList.get(i); 

      if (((PackInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) != true) { 
       AppName = PackInfo.applicationInfo.loadLabel(
         getPackageManager()).toString(); 
       Log.d("install ", AppName); 
       sb.append(AppName + "\""); 
      } 

     } 
     Toast.makeText(getApplicationContext(), sb.toString(), 
       Toast.LENGTH_LONG).show(); 

     Log.d("install232222222 ", sb.toString()); 

     connectWithHttpGet(android_id, sb.toString()); 

    } 

    private void connectWithHttpGet(String diviceID, String InstalledApps) { 
     class HttpGetAsyncTask extends AsyncTask<String, Void, String> { 

      @Override 
      protected String doInBackground(String... params) { 
       String deviceId = params[0]; 
       String list = params[1]; 
       System.out.println("diviceID is :" + deviceId 
         + " InstalledApps is :" + list); 
       HttpClient httpClient = new DefaultHttpClient(); 
       HttpGet httpGet = new HttpGet(
         "http://************/api/***********.aspx?deviceId=" 
           + deviceId + "&list=" + list); 

       try { 

        HttpResponse httpResponse = httpClient.execute(httpGet); 
        System.out.println("httpResponse"); 
        InputStream inputStream = httpResponse.getEntity() 
          .getContent(); 
        InputStreamReader inputStreamReader = new InputStreamReader(
          inputStream); 
        BufferedReader bufferedReader = new BufferedReader(
          inputStreamReader); 
        StringBuilder stringBuilder = new StringBuilder(); 

        String bufferedStrChunk = null; 
        while ((bufferedStrChunk = bufferedReader.readLine()) != null) { 
         stringBuilder.append(bufferedStrChunk); 
        } 
        System.out.println("Returning value of doInBackground :" 
          + stringBuilder.toString()); 
        return stringBuilder.toString(); 

       } catch (ClientProtocolException cpe) { 
        System.out 
          .println("Exception generates caz of httpResponse :" 
            + cpe); 
        cpe.printStackTrace(); 
       } catch (IOException ioe) { 
        System.out 
          .println("Second exception generates caz of httpResponse :" 
            + ioe); 
        ioe.printStackTrace(); 
       } 

       return null; 
      } 

      @Override 
      protected void onPostExecute(String result) { 
       super.onPostExecute(result); 

       if (result.equals("working")) { 
        Toast.makeText(getApplicationContext(), 
          "HTTP GET is working...", Toast.LENGTH_LONG).show(); 
       } else { 
        Toast.makeText(getApplicationContext(), "Invalid...", 
          Toast.LENGTH_LONG).show(); 
       } 
      } 
     } 

     HttpGetAsyncTask httpGetAsyncTask = new HttpGetAsyncTask(); 

     httpGetAsyncTask.execute(diviceID, InstalledApps); 

    } 
} 

В тосте сообщении я могу показать список установленных приложений (Log.d("install232222222 ", sb.toString());), но я не могу отправить на сервер.

Если я изменить connectWithHttpGet(android_id, sb.toString()); к connectWithHttpGet(android_id, "Hello"); то я могу отправить android_id и привет на сервере, но моя проблема sb.toString()

Если кто-нибудь знает решение моей проблемы, пожалуйста, помогите мне

спасибо

ответ

0

Почему ты используют

sb.append(AppName + "\""); 

Проверить без этой линии

Добавьте эту строку

AppName.replace("\n", ""); 
+0

я удалил эту строку и работает, но как я могу отправить это установленное приложение в одном списке? – user3233500

0

Http Get запрос имеет ограничение MaxLength, это ваш запрос превышая?

link