android打开网络连接
❶ android 手机开启wifi开关的时候,如果连接到了比如cmcc的网络,...
这一点制确实iPhone做得很好,会自动弹出登录页面让你输入用户名密码,输入完后再自动收回。而Android即使连起了cmcc chinaunicom这种,也不会有提示,只有使用浏览器打开任意网页才会跳转到登录页。更悲剧的是,如果登录后不小心把那个浏览器页面关闭,可能网络就断了~~体验确实差!要知道win7也会提示“点击此处打开浏览器”之类
❷ android 程序打开检测网络 问题
如果没有网络的话,你的代码肯定执行到Common.setNetworkMethod(Login.this)这一行.这样你的程序不能执行
app.addActivity("login", Login.this);
内 Bind();
BindListener();
这三行了.
你可以写个服务,服务里容写个广播接收者.接收系统发来的网络可用的广播,接收到之后再执行上面这三行,就可以了.
问题的原因是你虽然跳转到网络设置界面了,但是你的程序没有收到消息.
❸ android连接网络服务器
package com.test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
public class TestPost extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.loading);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
final Map<String, String> params0 = new HashMap<String, String>();
params0.put("username", username);
params0.put("password", password);
final String url0 = "http://192.168.0.11:80/xxxx.php";
Runnable downloadRun = new Runnable() {
@Override
public void run() {
Looper.prepare();
try {
String result0 = sendPostRequest(
params0, url0);
JSONObject jsonObject = new JSONObject(result0);
String status = jsonObject.getString("status");
String message = jsonObject.getString("message");
if (status.equals("success")) {
//成功干啥
} else {
//失败干啥
}
} catch (Exception e) {
//出现异常干啥
}
}
};
new Thread(downloadRun).start();
}
}, 200);
}
//post请求方法
public String sendPostRequest(Map<String, String> params, String actionurl)
throws Exception {
String URl = actionurl;
StringBuilder sb = new StringBuilder();
if (params != null && !params.isEmpty()) {
for (Map.Entry<String, String> entry : params.entrySet()) {
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode(entry.getValue(), "UTF-8"))
.append('&');
}
sb.deleteCharAt(sb.length() - 1);
}
byte[] entitydata = sb.toString().getBytes();// 得到实体的二进制数据
URL url = new URL(URl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setConnectTimeout(10000);
conn.setDoOutput(true);// 如果通过post提交数据,必须设置允许对外输出数据
conn.setUseCaches(false);// 是否缓存
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length",String.valueOf(entitydata.length));
OutputStream outStream = conn.getOutputStream();
outStream.write(entitydata);
outStream.flush();
outStream.close();
BufferedReader bufferRead = null;
if(conn.getResponseCode() == 200){
bufferRead = new BufferedReader(new InputStreamReader(conn.getInputStream()));
}
String result = "";
String readLine = null;
while ((readLine = bufferRead.readLine()) != null) {
result += readLine;
}
bufferRead.close();
conn.disconnect();
return result;
}
}
我用的是这种方法
告诉你几个代码把,这些都是连接方式:
Activity.startActivities() 常用于在应用程序中间启动其他的Activity.
TextUtils.isEmpty() 简单的工具类,用于检测是否为空
Html.fromHtml() 用于生成一个Html,参数可以是一个字符串.个人认为它不是很快,所以我不怎么经常去用.(我说不经常用它是为了重点突出这句话:请多手动构建 Spannable 来替换 Html.fromHtml),但是它对渲染从 web 上获取的文字还是很不错的。
TextView.setError() 在验证用户输入的时候很棒
Build.VERSION_CODES 这个标明了当前的版本号,在处理兼容性问题的时候经常会用到.点进去可以看到各个版本的不同特性
Log.getStackTraceString() 方便的日志类工具,方法Log.v()、Log.d()、Log.i()、Log.w()和Log.e()都是将信息打印到LogCat中,有时候需要将出错的信息插入到数据库或一个自定义的日志文件中,那么这种情况就需要将出错的信息以字符串的形式返回来,也就是使用static String getStackTraceString(Throwable tr)方法的时候.
LayoutInflater.from() 顾名思义,用于Inflate一个layout,参数是layout的id.这个经常写Adapter的人会用的比较多.
ViewConfiguration.getScaledTouchSlop() 使用 ViewConfiguration 中提供的值以保证所有触摸的交互都是统一的。这个方法获取的值表示:用户的手滑动这个距离后,才判定为正在进行滑动.当然这个值也可以自己来决定.但是为了一致性,还是使用标准的值较好.
PhoneNumberUtils.convertKeypadLettersToDigits 顾名思义.将字母转换为数字,类似于T9输入法,
Context.getCacheDir() 获取缓存数据文件夹的路径,很简单但是知道的人不多,这个路径通常在SD卡上(这里的SD卡指的是广义上的SD卡,包括外部存储和内部存储)Adnroid/data/您的应用程序包名/cache/ 下面.测试的时候,可以去这里面看是否缓存成功.缓存在这里的好处是:不用自己再去手动创建文件夹,不用担心用户把自己创建的文件夹删掉,在应用程序卸载的时候,这里会被清空,使用第三方的清理工具的时候,这里也会被清空.
ArgbEvaluator 用于处理颜色的渐变。就像 Chris Banes 说的一样,这个类会进行很多自动装箱的操作,所以最好还是去掉它的逻辑自己去实现它。这个没用过,不明其所以然,回头再补充.
ContextThemeWrapper 方便在运行的时候修改主题.
Space space是Android 4.0中新增的一个控件,它实际上可以用来分隔不同的控件,其中形成一个空白的区域.这是一个轻量级的视图组件,它可以跳过Draw,对于需要占位符的任何场景来说都是很棒的。
ValueAnimator.reverse() 这个方法可以很顺利地取消正在运行的动画.我超喜欢.
DateUtils.formatDateTime() 用来进行区域格式化工作,输出格式化和本地化的时间或者日期。
AlarmManager.setInexactRepeating 通过闹铃分组的方式省电,即使你只调用了一个闹钟,这也是一个好的选择,(可以确保在使用完毕时自动调用 AlarmManager.cancel ()。原文说的比较抽象,这里详细说一下:setInexactRepeating指的是设置非准确闹钟,使用方法:alarmManager.setInexactRepeating(AlarmManager.RTC, startTime,intervalL, pendingIntent),非准确闹钟只能保证大致的时间间隔,但是不一定准确,可能出现设置间隔为30分钟,但是实际上一次间隔20分钟,另一次间隔40分钟。它的最大的好处是可以合并闹钟事件,比如间隔设置每30分钟一次,不唤醒休眠,在休眠8小时后已经积累了16个闹钟事件,而在手机被唤醒的时候,非准时闹钟可以把16个事件合并为一个, 所以这么看来,非准时闹钟一般来说比较节约能源。
Formatter.formatFileSize() 一个区域化的文件大小格式化工具。通俗来说就是把大小转换为MB,G,KB之类的字符串。
ActionBar.hide()/.show() 顾名思义,隐藏和显示ActionBar,可以优雅地在全屏和带Actionbar之间转换。
Linkify.addLinks() 在Text上添加链接。很实用。
StaticLayout 在自定义 View 中渲染文字的时候很实用。
Activity.onBackPressed() 很方便的管理back键的方法,有时候需要自己控制返回键的事件的时候,可以重写一下。比如加入 “点两下back键退出” 功能。
GestureDetector 用来监听和相应对应的手势事件,比如点击,长按,慢滑动,快滑动,用起来很简单,比你自己实现要方便许多。
DrawFilter 可以让你在不调用onDrew方法的情况下,操作canvas,比了个如,你可以在创建自定义 View 的时候设置一个 DrawFilter,给父 View 里面的所有 View 设置反别名。
ActivityManager.getMemoryClass() 告诉你你的机器还有多少内存,在计算缓存大小的时候会比较有用.
ViewStub 它是一个初始化不做任何事情的 View,但是之后可以载入一个布局文件。在慢加载 View 中很适合做占位符。唯一的缺点就是不支持标签,所以如果你不太小心的话,可能会在视图结构中加入不需要的嵌套。
SystemClock.sleep() 这个方法在保证一定时间的 sleep 时很方便,通常我用来进行 debug 和模拟网络延时。
DisplayMetrics.density 这个方法你可以获取设备像素密度,大部分时候最好让系统来自动进行缩放资源之类的操作,但是有时候控制的效果会更好一些.(尤其是在自定义View的时候).
❺ 安卓怎么开启数据网络
正常情况下,打开手机设置,找到<无线和网络>选项,点击打开之后找到<数据连接>并且开启内就可以打开并使用容网络。
而针对部分没有设置网络接入点或者新手机而无法上网的情况,建议手机连接电脑,下载安装<海卓APN>,打开软件以后选择“联网助手”选项,即可对手机的接入点参数进行自动设置。点击“一键设置APN信息”或者“手动设置APN信息”,选择“中国移动”运营商就可以设置好了中国移动的接入点。
❻ Android判断是否有网络连接,如果没有开启移动网络
protected boolean CheckNetwork() {
// TODO Auto-generated method stub
boolean flag = false;
ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (cwjManager.getActiveNetworkInfo() != null)
flag = cwjManager.getActiveNetworkInfo().isAvailable();
if (!flag) {
Builder b = new AlertDialog.Builder(this).setTitle("没有可用的网络").setMessage("请开启GPRS或WIFI网路连接");
b.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent mIntent = new Intent("/");
ComponentName comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
mIntent.setComponent(comp);
mIntent.setAction("android.intent.action.VIEW");
startActivity(mIntent);
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub dialog.cancel();
}
}).create();
b.show();
}
return flag;
}
❼ Android判断网络是否连接,跳转到设置页面以及判断连接的是什么网络
一、判断网络连接是否可用,不可用跳转到设置界面
view sourceprint?
01.
@Override
02.
protected void onStart() {
03.
AlertDialog.Builder builder=new Builder(this);
04.
05.
//检查用户的网络情况
06.
ConnectivityManager cm=(ConnectivityManager) MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);
07.
//返回当前可用网络信息
08.
09.
NetworkInfo info=cm.getActiveNetworkInfo();
10.
if(info!=null&&info.isConnected()){
11.
Toast.makeText(MainActivity.this, "网络可用", 0).show();
12.
13.
}else{
14.
Toast.makeText(MainActivity.this, "网络不可用", 0).show();
15.
builder.setTitle("提醒");
16.
builder.setMessage("当前网络不可用,点击确定设置网络");
17.
builder.setPositiveButton("确定", new OnClickListener() {
18.
19.
@Override
20.
public void onClick(DialogInterface dialog, int which) {
21.
Intent intent=new Intent();
22.
intent.setClassName("com.android.settings", "com.android.settings.Settings");
23.
startActivity(intent);
24.
}
25.
}
26.
);
27.
builder.create().show();
28.
}
29.
30.
super.onStart();
31.
}
二、使用ConnectionChangeReceiver判断网络是否可用view sourceprint?
01.
public class MainActivity extends Activity {
02.
private ConnectionChangeReceiver myReceiver;
03.
04.
@Override
05.
protected void onCreate(Bundle savedInstanceState) {
06.
super.onCreate(savedInstanceState);
07.
setContentView(R.layout.activity_main);
08.
//用广播判断
09.
myReceiver=new ConnectionChangeReceiver();
10.
this.registerReceiver(myReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
11.
}
12.
public class ConnectionChangeReceiver extends BroadcastReceiver
13.
{
14.
@Override
15.
public void onReceive(Context context, Intent intent) {
16.
ConnectivityManager connectivityManager = (ConnectivityManager)
17.
context.getSystemService(Context.CONNECTIVITY_SERVICE);
18.
NetworkInfo mobworkInfo = connectivityManager
19.
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
20.
NetworkInfo wifiworkInfo = connectivityManager
21.
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
22.
boolean IsNetConnected = mobworkInfo.isConnected();
23.
boolean IsWifiConnected = wifiworkInfo.isConnected();
24.
if(IsNetConnected || IsWifiConnected){
25.
System.out.println("网络打开");
26.
Log.e("wankai", "wankai");
27.
boolean isConnected = true;
28.
}else{
29.
boolean isConnected = false;
30.
System.out.println("网络关闭");
31.
Log.e("wankai2", "wangguan");
32.
}
33.
}
34.
}
35.
36.
37.
}
view sourceprint?
1.
三、判断GPS是否打开
view sourceprint?
1.
public static boolean isGpsEnabled(Context context) {
2.
LocationManager lm = ((LocationManager) context
3.
.getSystemService(Context.LOCATION_SERVICE));
4.
List<String> accessibleProviders = lm.getProviders(true);
5.
return accessibleProviders != null && accessibleProviders.size() > 0;
6.
}
四、判断WIFI是否打开
view sourceprint?
01.
public static boolean isWifiEnabled(Context context) {
02.
ConnectivityManager mgrConn = (ConnectivityManager) context
03.
.getSystemService(Context.CONNECTIVITY_SERVICE);
04.
TelephonyManager mgrTel = (TelephonyManager) context
05.
.getSystemService(Context.TELEPHONY_SERVICE);
06.
return ((mgrConn.getActiveNetworkInfo() != null && mgrConn
07.
.getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel
08.
.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);
09.
}
五、判断是否是3G网络
view sourceprint?
01.
public static boolean is3rd(Context context) {
02.
ConnectivityManager cm = (ConnectivityManager) context
03.
.getSystemService(Context.CONNECTIVITY_SERVICE);
04.
NetworkInfo networkINfo = cm.getActiveNetworkInfo();
05.
if (networkINfo != null
06.
&& networkINfo.getType() == ConnectivityManager.TYPE_MOBILE) {
07.
return true;
08.
}
09.
return false;
10.
}
六、判断是wifi还是3g网络,用户的体现性在这里了,wifi就可以建议下载或者在线播放。
view sourceprint?
01.
public static boolean isWifi(Context context) {
02.
ConnectivityManager cm = (ConnectivityManager) context
03.
.getSystemService(Context.CONNECTIVITY_SERVICE);
04.
NetworkInfo networkINfo = cm.getActiveNetworkInfo();
05.
if (networkINfo != null
06.
&& networkINfo.getType() == ConnectivityManager.TYPE_WIFI) {
07.
return true;
08.
}
09.
return false;
10.
}
转载
❽ 以Android系统手机为例:A. 首先打开手机中的设置选项,找到“无线和网络”选项
安卓手机上网参数设置方法:进入手机设置-连接-更多网络-移动网络-移动数据(开启)-接入内点名称-按需选择,也可容点击菜单键-重置为默认值(cmnet接入点所产生的流量费是否包含在套餐中请以实际开通套餐为准);如有手机具体品牌,可回复:XX手机上网参数设置方法(如:苹果手机上网参数设置方法/华为手机上网参数设置方法)。
❾ 安卓手机打开网络的情况下如何限制软件连接网络
安卓手机上网参数设置方法:进入手机设置-连接-更多网络-移动网络-移动数据(开内启)-接入点名称-按需容选择,也可点击菜单键-重置为默认值(cmnet接入点所产生的流量费是否包含在套餐中请以实际开通套餐为准);如有手机具体品牌,可回复:XX手机上网参数设置方法(如:苹果手机上网参数设置方法/华为手机上网参数设置方法)。