小编44k*_*rma的帖子

在Android中使用MultipartEntityBuilder和HTTP Client发布JSON对象和文件的标准方法是什么

我可以使用StringEntity发布json对象

httppost.setEntity(newStringEntity(obj.toString())); HttpResponse response = httpclient.execute(httppost);

但我必须发布一个文件和json数据,我发现很多Answers使用MultipartEntity但它已被弃用,请建议我使用MultipartEntityBuilder的任何教程或示例代码,谢谢
这是我的代码

Thread t = new Thread(new Runnable() {

@Override
public void run() {

JSONObject jsonobject = null;

String requestURL = "URL";

try {

jsonobject = new JSONObject("{\"first\": \"Test\",\"last\": \"User\",\"name\": \"Test 
User\",\"email\": \"tr0121345899@gmail.com\",\"birthdate\": \"1984-01-01\",\"Account\": {\"username\": \"t1r0123425899\",\"password\": \"testuser1234567899\"},\"Address\": {\"postal_code\": \"11230\",\"state_or_province\": \"NY\",\"country\": \"US\"}}");
                } catch (JSONException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }



HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(requestURL);

httppost.addHeader("Content-Type", "application/json");

httppost.addHeader("X-ConsumerApiClient","0f8f0a024d6344e429f5ee96aa66fbfb5c3973b5");

httppost.addHeader("X-ConsumerApiSignature",

                    "qmt8aEAGRQUvldkDnHw8zgn1kRYuXRDwvmo3TpWlCtE=");

MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();
                multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

multipartEntity.addPart("file", …
Run Code Online (Sandbox Code Playgroud)

android json http-post multipartentity apache-httpclient-4.x

5
推荐指数
1
解决办法
4835
查看次数

如何从后台服务记录活动上的所有触摸事件

我需要记录活动中的所有触摸点,所以我在窗口管理器中添加了一个叠加视图,并在叠加视图上设置了触摸监听器,我得到了所有触摸点,但是我在添加叠加层后面临两个问题

  1. 我可以打开选项菜单但不能选择任何菜单项
  2. AlertDialog.show()停止显示警报框我可以通过覆盖活动内的onTouchEvent方法来获取所有触摸点,但应用程序要求不允许这样做.

如果任何人可以帮助我,或者分享一些解释WindowManager,窗口和DecorView等的链接,那将是很棒的.这是我的代码,如果需要更多信息,请告诉我.

 WindowManager.LayoutParams params = new WindowManager.LayoutParams(
    WindowManager.LayoutParams.MATCH_PARENT,
    WindowManager.LayoutParams.MATCH_PARENT,
    WindowManager.LayoutParams.TYPE_PHONE,
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
            | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
            | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
    PixelFormat.TRANSLUCENT);


WindowManager wm = (WindowManager) activityContext
    .getSystemService(Context.WINDOW_SERVICE);

View mView = new View(activityContext);

wm.addView(mView, params);

mView.setOnTouchListener(new OnTouchListener() {

@Overrideenter code here
public boolean onTouch(View v, MotionEvent event) {
    Log.d("touch", "event occured");
    activity.getWindow().superDispatchTouchEvent(event);    
 // or   
   // activity.dispatchTouchEvent(event);

 return false;
}
});
Run Code Online (Sandbox Code Playgroud)

android

3
推荐指数
1
解决办法
1907
查看次数