【问题标题】:Unfortunately, <project name> has stopped不幸的是,<项目名称> 已停止
【发布时间】:2014-01-16 03:58:39
【问题描述】:

我希望 Android 获取 Wifi 路由器名称。 MainActivity.java 有这个代码。但是当我运行我得到以下错误不幸的是,已经停止。谢谢

WifiManager wifiMgr = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
String WifiName = wifiInfo.getSSID();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    TextView outputWifiName = (TextView) findViewById(R.id.sysInf);

    outputWifiName.setText(WifiName);

}

private Activity getActivity() {
    // TODO Auto-generated method stub
    return null;
}

【问题讨论】:

  • 能贴一下日志和栈的行吗?
  • getActivity 返回 null

标签: java android android-wifi


【解决方案1】:

你的 getActivity 返回 null 你应该在 onCreate 中初始化 wifiMgr

WifiManager wifiMgr =null;
WifiInfo wifiInfo = null;
String WifiName = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
     wifiMgr= (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
     wifiInfo = wifiMgr.getConnectionInfo();
    WifiName = wifiInfo.getSSID();
    TextView outputWifiName = (TextView) findViewById(R.id.sysInf);

    outputWifiName.setText(WifiName);

}

【讨论】:

    【解决方案2】:

    你在这行调用getActivity' but at the same time override it to returnnull. This results in aNullPointerException`:

    WifiManager wifiMgr = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
    

    【讨论】:

      【解决方案3】:

      这一行

      WifiManager wifiMgr = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
      

      这将是一个问题,因为您在创建 Activity 之前调用了 getActivity()。将该初始化以及随后的以下初始化移至onCreate()

      String WifiName;
      WifiInfo wifiInfo;
      WifiManager wifiMgr;
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
      
          // Move those guys to here
          wifiMgr = (WifiManager)    
          getActivity().getSystemService(Context.WIFI_SERVICE);
          wifiInfo = wifiMgr.getConnectionInfo();
          WifiName = wifiInfo.getSSID();
      
          TextView outputWifiName = (TextView) findViewById(R.id.sysInf);
          outputWifiName.setText(WifiName);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-29
        • 2015-06-10
        相关资源
        最近更新 更多