package cn.com.chenliang;import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;public class CheckWifiActivity extends Activity {
Button btnCheck = null;
Button btnOpen = null;
Button btnClose = null;
TextView status = null;
WifiManager wifiManager = null; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnCheck = (Button) findViewById(R.id.btn_check);
btnOpen = (Button) findViewById(R.id.btn_open);
btnClose = (Button) findViewById(R.id.btn_close);
status = (TextView) findViewById(R.id.status); btnCheck.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
int state = CheckWifi(CheckWifiActivity.this.getApplicationContext());
System.out.println("fdsafdafdsafdsafdsaf"); if(state ==
WifiManager.WIFI_STATE_DISABLED){//wifi网卡不可用
status.setText("wifi网卡不可用"); }else if( state ==
WifiManager.WIFI_STATE_DISABLING){ //wifi正在关闭
status.setText("wifi正在关闭"); }else if( state ==
WifiManager.WIFI_STATE_ENABLED){ //wifi网卡可用
status.setText("wifi网卡可用"); }else if( state ==
WifiManager.WIFI_STATE_ENABLING){ //wifi网卡正在打开
status.setText("wifi网卡正在打开"); }else if( state ==
WifiManager.WIFI_STATE_UNKNOWN){ //未知网卡状态
status.setText("未知网卡状态"); }
}
});
btnOpen.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
OpenWifi(CheckWifiActivity.this.getApplicationContext()); }
});
btnClose.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
CloseWifi(CheckWifiActivity.this.getApplicationContext()); }
});
}
public int CheckWifi(Context context){
this.wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); int
mWifiState = wifiManager.getWifiState();
return mWifiState;
}
public
void OpenWifi(Context context){
this.wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.getWifiState() == wifiManager.WIFI_STATE_DISABLED) {
wifiManager.setWifiEnabled(true);
}
}
public void CloseWifi(Context context){
this.wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.getWifiState() == wifiManager.WIFI_STATE_ENABLED) {
wifiManager.setWifiEnabled(false);
}
}
}这是必要的权限:
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="CheckWifi:"
/>
<Button
android:id="@+id/btn_open"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="打开WIFI"
/>
<Button
android:id="@+id/btn_close"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="关闭WIFI"
/>
<Button
android:id="@+id/btn_check"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="检查wifi状态"
/>
<TextView
android:id="@+id/status"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="wifi状态"
/>
</LinearLayout>
问题:每当我在真机上点检测wifi状态、打开wifi、关闭wifi按钮时程序都会死掉,求大神帮忙看下,哪里还有问题! 另外求检测3g和2g状态的代码,求帮忙啊 !
import android.content.Context;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;public class CheckWifiActivity extends Activity {
Button btnCheck = null;
Button btnOpen = null;
Button btnClose = null;
TextView status = null;
WifiManager wifiManager = null; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnCheck = (Button) findViewById(R.id.btn_check);
btnOpen = (Button) findViewById(R.id.btn_open);
btnClose = (Button) findViewById(R.id.btn_close);
status = (TextView) findViewById(R.id.status); btnCheck.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
int state = CheckWifi(CheckWifiActivity.this.getApplicationContext());
System.out.println("fdsafdafdsafdsafdsaf"); if(state ==
WifiManager.WIFI_STATE_DISABLED){//wifi网卡不可用
status.setText("wifi网卡不可用"); }else if( state ==
WifiManager.WIFI_STATE_DISABLING){ //wifi正在关闭
status.setText("wifi正在关闭"); }else if( state ==
WifiManager.WIFI_STATE_ENABLED){ //wifi网卡可用
status.setText("wifi网卡可用"); }else if( state ==
WifiManager.WIFI_STATE_ENABLING){ //wifi网卡正在打开
status.setText("wifi网卡正在打开"); }else if( state ==
WifiManager.WIFI_STATE_UNKNOWN){ //未知网卡状态
status.setText("未知网卡状态"); }
}
});
btnOpen.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
OpenWifi(CheckWifiActivity.this.getApplicationContext()); }
});
btnClose.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
CloseWifi(CheckWifiActivity.this.getApplicationContext()); }
});
}
public int CheckWifi(Context context){
this.wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); int
mWifiState = wifiManager.getWifiState();
return mWifiState;
}
public
void OpenWifi(Context context){
this.wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.getWifiState() == wifiManager.WIFI_STATE_DISABLED) {
wifiManager.setWifiEnabled(true);
}
}
public void CloseWifi(Context context){
this.wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.getWifiState() == wifiManager.WIFI_STATE_ENABLED) {
wifiManager.setWifiEnabled(false);
}
}
}这是必要的权限:
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="CheckWifi:"
/>
<Button
android:id="@+id/btn_open"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="打开WIFI"
/>
<Button
android:id="@+id/btn_close"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="关闭WIFI"
/>
<Button
android:id="@+id/btn_check"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="检查wifi状态"
/>
<TextView
android:id="@+id/status"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="wifi状态"
/>
</LinearLayout>
问题:每当我在真机上点检测wifi状态、打开wifi、关闭wifi按钮时程序都会死掉,求大神帮忙看下,哪里还有问题! 另外求检测3g和2g状态的代码,求帮忙啊 !
解决方案 »
- android相关 JNI那块
- 如图的布局应该怎么弄
- 运行时报ResourceNotFound
- 安卓开发里面怎么通过监听计算2点之间距离,并进行判断
- Android 如何在2个View之间传递数据
- 关于休眠时候的电流
- 程序运行中按电源键锁屏,直接调用了onDestroy方法这是为什么?
- 请问, android下的应用程序中, 想在以下语句中加时间输出信息, 如何加呢? (不知函数名称)
- Android 使用 Paint 画折线图线段不平滑
- 搭建opensips服务器,视频不通
- 100分 让一个界面弹出到所有APK的界面之上
- 请问大家,怎样在非onDraw方法外获取到canvas呢?希望知道的帮帮忙,感激不尽!!
以前权限位置:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.com.chenliang"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".CheckWifiActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> </application>
</manifest>改变权限位置后:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.com.chenliang"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".CheckWifiActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>