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手機上網參數設置方法(如:蘋果手機上網參數設置方法/華為手機上網參數設置方法)。