Привет всем Я хочу, чтобы отправить два параметра на серверандроид отправить два параметра на сервер
- андроид идентификатор
- установлена информация приложение
Я написал код, чтобы узнать установленное приложение и печати в 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()
Если кто-нибудь знает решение моей проблемы, пожалуйста, помогите мне
спасибо
я удалил эту строку и работает, но как я могу отправить это установленное приложение в одном списке? – user3233500