【问题标题】:Get width of device and send it to server?获取设备的宽度并将其发送到服务器?
【发布时间】:2016-02-22 12:53:15
【问题描述】:

我正在我的活动中打开一个网络视图。当我加载 url 时,我将 aff_id 和 developer_public_key 发送到服务器(在 doInBackground 方法中)。我还必须发送设备的宽度。 如何获取设备的宽度并发送到服务器?

我的活动是:

public class InterestitialAds extends Activity {
private WebView webView;
private ProgressDialog dialog;
Context context;
ImageView imageView;
RelativeLayout parentV;

private static String PREF_NAME = "gallectica_pref_adstuck";
private static SharedPreferences prefs;

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

    interAds(InterestitialAds.this);

    imageView = (ImageView) findViewById(R.id.interAd);
    imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            finish();
        }
    });

}

private void interAds(final Context ctx) {


    new AsyncTask<Void, Void, Boolean>() {
        private String developer_public_key, aff_id;
        private String bannerUrl, clickUrl;

        protected void onPreExecute() {
            super.onPreExecute();
            prefs = ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
            prefs.edit().putString("android_id", Settings.Secure.getString(ctx.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID)).commit();

            developer_public_key = prefs.getString("developer_public_key", "23/89533a6f4248873b08ce52ce680f29e7");
            aff_id = prefs.getString("android_id", "");
        }


        protected Boolean doInBackground(Void... arg0) {
            String json = "";
            HttpURLConnection connection = null;
            InputStream is = null;

            ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("aff_id", aff_id));
            params.add(new BasicNameValuePair("developer_public_key", developer_public_key));

            try {
                DefaultHttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost("http://a.nextput.com/api/single-offer/" + developer_public_key + "/a/fs?aff_id=" + aff_id);//YOUR URL  ?aff_id

                HttpResponse httpResponse = httpClient.execute(httpPost);
                json = EntityUtils.toString(httpResponse.getEntity());

                JSONObject jObj = new JSONObject(json);
                boolean isSuccess = jObj.getBoolean("success");
                System.out.println("success : " + isSuccess);

                /* JSONObject jsonObject = new JSONObject(json);
                   boolean state = jsonObject.getBoolean("success");*/

                JSONObject jo = jObj.getJSONObject("offer");

                bannerUrl = jo.getString("banner_url");
                clickUrl = jo.getString("click_url");


                return isSuccess;
            } catch (Exception e) {
                Log.e("JSON Parser", "Error parsing data " + e.toString());
            }

            return false;
        }

        protected void onPostExecute(Boolean result) {
            super.onPostExecute(result);

            //   ImageLoader.getInstance().displayImage(bannerUrl, );


            webView = (WebView) findViewById(R.id.webView3);
            webView.getSettings().setJavaScriptEnabled(true);
            webView.loadUrl(bannerUrl);

            parentV = (RelativeLayout) findViewById(R.id.parentRL);

            parentV.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View view, MotionEvent motionEvent) {
                    Intent browserIntent = new Intent(Intent.ACTION_VIEW,  Uri.parse(clickUrl));
                    startActivity(browserIntent);
                    return false;
                }
            });
        }
    }.execute();
}
}

【问题讨论】:

    标签: android android-layout android-fragments android-intent


    【解决方案1】:

    您可以使用以下代码获取屏幕宽度和高度

        DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    int height = displaymetrics.heightPixels;
    int width = displaymetrics.widthPixels;
    

    【讨论】:

    • 这是一个完美的活动。如果我有一堂课,那么如何获得设备宽度?在类的情况下,它说无法解析'getwindowmanager()'。
    • 如果你说的是片段然后使用 getActivity().getWindowManager
    猜你喜欢
    • 2014-06-16
    • 2011-11-20
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    相关资源
    最近更新 更多