3.1的android wifi api问题

时间:2012-01-30 06:14:05

标签: android broadcastreceiver wifimanager

我想在我的wifi打开时启动我的活动,以便在WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION时调用我的活动。它将与2.3(姜饼)三星水龙头一起工作,但同样的程序将不适用于3.1(蜂窝)三星tap.guide为什么这样的问题将发生在这里是我的孔代码:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.util.Log;

/**
 * A BroadcastReceiver that listens for updates for the
 * ExampleAppWidgetProvider. This BroadcastReceiver starts off disabled, and we
 * only enable it when there is a widget instance created, in order to only
 * receive notifications when we need them.
 */
public class WIFIBroadcastReceiver extends BroadcastReceiver {

    public static String packageName = "com.example.wifi";

    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();

        if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) {
            if (intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED,
                    false)) {
                Log.d(packageName, "WIFI Connected");
                if (context != null) {

                    Intent ssIntent = new Intent(context,
                            com.example.wifi.Activity.class);
                    ssIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(ssIntent);
                }
            } else {
                Log.d(packageName, "WIFI Connection was Lost");
            }
        }
    }
}

2 个答案:

答案 0 :(得分:2)

我确定你究竟发出的是什么,但听起来它与你的ROM有关,如果它的根源与否等等。

另一种可能性是您正在使用的API。 HC是否需要与GB不同的版本?

我认为这不是你的代码,所以如果你无法弄明白,请尝试提供有关标签和手机之间差异的信息(除了显而易见的)。

只是预感,所以我很抱歉,如果它远离基地。

祝你好运!

答案 1 :(得分:0)

不确定您面临的问题。谦卑地建议尝试替代方案:

您可以注册WIFI_STATE_CHANGED_ACTION意图,然后在onReceive()中调用getConnectionInfo()。 NetworkInfo.DetailedState类应提供(更详细的)有关IP地址是否可用的信息,然后可以启动您的活动。