需要在清单中为代码声明的权限

时间:2014-03-29 18:08:25

标签: android apache android-asynctask manifest

我需要知道需要在清单文件中进行的更改 以及运行此应用程序所需的权限 而我的目的是从网页中获取字符串并将其显示在内部" onPostExecute()"

package com.example.guru;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;

import android.os.AsyncTask;
import android.util.Log;

//new code


class RequestTask extends AsyncTask<String, String, String>{

@Override
// username, password, message, mobile
protected String doInBackground(String... url) {
    // constants
    int timeoutSocket = 5000;
    int timeoutConnection = 5000;

    HttpParams httpParameters = new BasicHttpParams();
    HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
    HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
    HttpClient client = new DefaultHttpClient(httpParameters);

    HttpGet httpget = new HttpGet(url[0]);

    try {
        HttpResponse getResponse = client.execute(httpget);
        final int statusCode = getResponse.getStatusLine().getStatusCode();

        if(statusCode != HttpStatus.SC_OK) {
            Log.w("MyApp", "Download Error: " + statusCode + "| for URL: " + url);
            return null;
        }

        String line = "";
        StringBuilder total = new StringBuilder();

        HttpEntity getResponseEntity = getResponse.getEntity();

        BufferedReader reader = new BufferedReader(new InputStreamReader(getResponseEntity.getContent()));  

        while((line = reader.readLine()) != null) {
            total.append(line);
        }

        line = total.toString();
        return line;
    } catch (Exception e) {
        Log.w("MyApp", "Download Exception : " + e.toString());
    }
    return null;
}

@Override
protected void onPostExecute(String result) {
    // do something with result

    System.out.println(result);


}
}


//new code end

2 个答案:

答案 0 :(得分:1)

您需要添加

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

使用清单文件

的权限

之后

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.photon.filnobep"
    android:installLocation="auto"
    android:versionCode="400"
    android:versionName="4.0.0" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

或从GUI添加

enter image description here

更新:1

将其添加到布局xml文件

<TextView
        android:id="@+id/textViewLike"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"           
        android:gravity="center"
        android:maxLines="1"
        android:textColor="#FFF"
        android:textSize="7pt" />

以及活动类中的以下内容

创建全局变量

TextView textVw = null;

onCreateView

中执行此操作
textVw = (TextView) findViewById(R.id.textViewLike);

然后这个

@Override
protected void onPostExecute(String result) {
    // do something with result


     textVw.setText(result);

}

答案 1 :(得分:0)

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"

 />