当前位置: 编程技术>移动开发
本页文章导读:
▪HttpClient根据系统配置设置代理 HttpClient依据系统配置设置代理
import org.apache.http.HttpHost;
import org.apache.http.client.HttpClient;
import org.apache.http.client.params.HttpClientParams;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl..........
▪ service Notification Thread的结合拳 service Notification Thread的组合拳
碰到一个需求,就是隔一段时间调用webservice接口,如果有信息就提示有新消息。虽然就一句话,但是想做好还真不太容易,昨天写好的demo今天调了一天,终.........
▪ 拿到会打开指定类型文件的应用程序 拿到能打开指定类型文件的应用程序
Intent it = new Intent();
it.setType("image/*")
List<ResolveInfo> ra = this.getPackageManager().queryIntentActivities(it,0);
for(int i=0;i<ra.size();i++){
ActivityInfo ai = ra.get(i)..........
[1]HttpClient根据系统配置设置代理
来源: 互联网 发布时间: 2014-02-18
HttpClient依据系统配置设置代理
自己写的一个工具类,提供如下方法
1) 判断WIFI是否连接
2) 判断数据业务(3G, EDGE, GPRS)是否连接
import org.apache.http.HttpHost;
import org.apache.http.client.HttpClient;
import org.apache.http.client.params.HttpClientParams;
import org.apache.http.conn.params.ConnRoutePNames;
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 org.apache.http.params.HttpProtocolParams;
import android.content.Context;
import android.net.Proxy;
import android.text.TextUtils;
import android.util.Log;
public final class HttpClientFactory {
private static final String TAG = HttpClientFactory.class.getSimpleName();
private static final int BUFFER_SIZE = 8192;
private static final String USER_AGENT = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 GTB6 (.NET CLR 3.5.30729)";
private static final int CONN_TIME_OUT = 20 * 1000;
private static final int READ_TIME_OUT = 20 * 1000;
private HttpClientFactory() {
super();
// TODO Auto-generated constructor stub
}
public static HttpClient createHttpClient(Context context) {
// 创建 HttpParams 以用来设置 HTTP 参数(这一部分不是必需的)
HttpParams httpParams = new BasicHttpParams();
// 设置连接超时和 Socket 超时,以及 Socket 缓存大小
HttpConnectionParams.setConnectionTimeout(httpParams, CONN_TIME_OUT);
HttpConnectionParams.setSoTimeout(httpParams, READ_TIME_OUT);
HttpConnectionParams.setSocketBufferSize(httpParams, BUFFER_SIZE);
// 设置重定向,缺省为 true
HttpClientParams.setRedirecting(httpParams, true);
// 检测代理设置
String proxyHost = Proxy.getHost(context);
int proxyPort = Proxy.getPort(context);
Log.d(TAG, "[createHttpClient] proxyHost = " + proxyHost);
Log.d(TAG, "[createHttpClient] proxyPort = " + proxyPort);
boolean isWifiConnected = Utils.isWifiConnected(context);
boolean isMobileConnected = Utils.isMobileConnected(context);
Log.d(TAG, "[createHttpClient] isWifiConnected = " + isWifiConnected);
Log.d(TAG, "[createHttpClient] isMobileConnected = " + isMobileConnected);
if (!isWifiConnected && !TextUtils.isEmpty(proxyHost)) {
HttpHost proxy = new HttpHost(proxyHost, proxyPort);
Log.d(TAG, "Set proxy: host: " + proxyHost + " port:" + proxyPort);
httpParams.setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
}
// 设置 user agent
String userAgent = USER_AGENT;
HttpProtocolParams.setUserAgent(httpParams, userAgent);
HttpClient httpClient = new DefaultHttpClient(httpParams);
return httpClient;
}
}
1 楼
337240552
2011-08-23
2 楼
xjm236
2011-12-26
Utils.isWifiConnected(context);
楼主,请问Utils这个类是什么样的
楼主,请问Utils这个类是什么样的
3 楼
shaobin0604
2011-12-26
xjm236 写道
Utils.isWifiConnected(context);
楼主,请问Utils这个类是什么样的
楼主,请问Utils这个类是什么样的
自己写的一个工具类,提供如下方法
1) 判断WIFI是否连接
2) 判断数据业务(3G, EDGE, GPRS)是否连接
[2] service Notification Thread的结合拳
来源: 互联网 发布时间: 2014-02-18
service Notification Thread的组合拳
碰到一个需求,就是隔一段时间调用webservice接口,如果有信息就提示有新消息。
虽然就一句话,但是想做好还真不太容易,昨天写好的demo今天调了一天,终于差不多了。
上代码
起始的Activity
Myservice类中
Service类中的Handler中根据具体情况 决定是否调用showNotification()
退出应用的时候要清除掉Notification Destory()中的mNM.cancelAll() 就清空了。
在调用完stopService()后别忘了关掉flag开关,OK了
碰到一个需求,就是隔一段时间调用webservice接口,如果有信息就提示有新消息。
虽然就一句话,但是想做好还真不太容易,昨天写好的demo今天调了一天,终于差不多了。
上代码
起始的Activity
new Thread(new Runnable(){
public void run() {
while(flag){
try {
startService(new Intent(Home.this,MyService.class));
Thread.sleep(1000*10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
Myservice类中
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
....
}
@Override
public void onDestroy() {
mNM.cancelAll();
super.onDestroy();
}
private void showNotification() {
Notification notification = new Notification(R.drawable.newmessage, text,
System.currentTimeMillis());
notification.flags = Notification.FLAG_AUTO_CANCEL;
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
new Intent(this, nn.class), 0);
notification.setLatestEventInfo(this, getText(R.string.),
text, contentIntent);
mNM.notify(R.string.XX, notification);
}
Service类中的Handler中根据具体情况 决定是否调用showNotification()
退出应用的时候要清除掉Notification Destory()中的mNM.cancelAll() 就清空了。
在调用完stopService()后别忘了关掉flag开关,OK了
[3] 拿到会打开指定类型文件的应用程序
来源: 互联网 发布时间: 2014-02-18
拿到能打开指定类型文件的应用程序
如果你要打开其他的媒体资源:video or audio
指定相应的Type即可!
Intent it = new Intent();
it.setType("image/*")
List<ResolveInfo> ra = this.getPackageManager().queryIntentActivities(it,0);
for(int i=0;i<ra.size();i++){
ActivityInfo ai = ra.get(i).activityInfo;
Drawable icon = ai.loadIcon(this.getPackageManager()); //图标
String label = ai.loadLabel(this.getPackageManager()).toString(); //名称
ComponentName c = new ComponentName(ai.applicationInfo.packageName, ai.name); //组件名,可以通过startActivity()打开此应用
}如果你要打开其他的媒体资源:video or audio
指定相应的Type即可!
最新技术文章: