2011-10-15 60 views
0

我試圖做一個類來處理一些路由器功能,例如檢索您連接的路由器的Mac地址。我希望有一種方法可以在不止一個類中調用這個方法。這是路由器類:嘗試訪問另一個類中的字符串崩潰應用程序

public class Router extends Service 
{ 
    static Router thisclass = new Router(); 

    WifiManager wifiMan = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
    WifiInfo wifiInf = wifiMan.getConnectionInfo(); 

    public String BSSID() { 
     return wifiInf.getBSSID(); 
    } 

    static String bssid() {  
     return thisclass.BSSID(); 
    } 

    @Override 
    public IBinder onBind(Intent arg0) { 
     return null; 
    } 
} 

然後在主類,我想用這個字符串作爲這樣的:

public class AppActivity extends Activity 
{ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     TextView macAddress; 

     macAddress = (TextView) findViewById(R.id.textView1); 

     //Router r = new Router(); 
     macAddress.setText("BSSID: " + Router.bssid()); 
    } 
} 

應用程序崩潰每次和我不知道爲什麼。我也不知道如何捕捉錯誤,我嘗試嘗試catch語句,但可以打印到logcat。在這一點上你可能知道我在編程方面並不太熱。最後一兩件事是我的清單,並感謝閱讀

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.infoturtle.ringbyrouter" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="7" /> 

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"></uses-permission> 

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> 
     <activity android:name=".AppActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <service android:name="Router"></service> 
    </application> 
</manifest> 
+0

你得到的錯誤是什麼? –

+0

這是事情,我不知道,應用程序的力量關閉,我不能打印到logcat或使用成功的嘗試趕上 – andru183

+0

嗯...這確實給任何工作與... SO應用程序甚至不打開? –

回答

0

主要的問題是,您有路由器擴展服務,而你實際上並沒有實現服務。試試這個:

public class Router { 
    private WifiInfo wifiInf; 

    public String bssid() { 
     return wifiInf.getBSSID(); 
    } 

    public Router(Context context) { 
     WifiManager wifiMan = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
     wifiInf = wifiMan.getConnectionInfo(); 
    } 
} 

public class AppActivity extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     TextView macAddress; 

     macAddress = (TextView) findViewById(R.id.textView1); 

     Router r = new Router(getApplicationContext()); 
     macAddress.setText("BSSID: " + r.bssid()); 
    } 
} 
相關問題