2013-01-02 73 views
-1

我有一個基本的登錄屏幕的平板電腦用戶將登錄到對Android設備的MAC地址,我想在那個特定的設備的MAC地址屏幕上的應用程序啓動時。我如何在TextView中顯示,當應用程序開始

後來,當我學習了更多關於Android開發的知識,並且我學習速度很慢,我想通過RESTful Web服務插入用戶名,登錄時間和MAC地址到數據庫。但現在我只是試圖顯示MAC地址。

我發現一些代碼,獲得來自WIFI經理的MAC地址,你會在下面我的代碼看,並把它放在一個方法。看起來,當我在onCreate方法中調用這個方法的應用程序炸彈。什麼是正確的工作流程?我應該從onCreate()方法中調用showMACAddress()嗎?它應該在嘗試/抓住?

BTW我對我的7英寸平板電腦肯頓與Android 4.0作爲我工作的這個測試,我已經在Android清單文件的應用程序只有橫向方向規定。 預先感謝您。

這裏是我的java類

package za.co.crcode.Inspector; 

import android.net.wifi.WifiInfo; 
import android.net.wifi.WifiManager; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Context; 
import android.view.Menu; 
import android.widget.TextView; 

public class DeviceLogin extends Activity { 

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

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_device_login, menu); 
     return true;   
    } 

    public void showMACAddress(){ 
     WifiManager wifiMan = (WifiManager) this.getSystemService(
      Context.WIFI_SERVICE); 
     WifiInfo wifiInf = wifiMan.getConnectionInfo(); 
     String macAddr = wifiInf.getMacAddress(); 

     TextView loginDeviceMACAddress = (TextView)findViewById(R.id.LoginDeviceMACAddress); 
     CharSequence macAddy = (String) macAddr.toString();  

     loginDeviceMACAddress.setText(macAddy); 
    } 

} 

這裏是我的Android GUI XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".DeviceLogin" > 

    <LinearLayout 
     android:id="@+id/LoginFieldsLayoutLeft" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerVertical="true" 
     android:layout_marginTop="5dp" 
     android:layout_marginLeft="50dp" 
     android:gravity="left" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/LoginScreenHeading" 
      android:layout_width="200dp" 
      android:layout_height="40dp" 
      android:layout_marginTop="20dp" 
      android:text="@string/loginScreenHeading" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <EditText 
      android:id="@+id/LoginFirstName" 
      android:layout_width="200dp" 
      android:layout_height="40dp" 
      android:layout_marginTop="10dp" 
      android:ems="10" 
      android:hint="@string/loginFirstNameHint" 
      android:inputType="textPersonName" 
      android:text="@string/loginFirstName" /> 

     <EditText 
      android:id="@+id/LoginLastName" 
      android:layout_width="200dp" 
      android:layout_height="40dp" 
      android:layout_marginTop="10dp" 
      android:ems="10" 
      android:hint="@string/loginLastNameHint" 
      android:inputType="textPersonName" 
      android:text="@string/loginLastName" /> 

     <EditText 
      android:id="@+id/LoginEmployeeID" 
      android:layout_width="200dp" 
      android:layout_height="40dp" 
      android:layout_marginTop="10dp" 
      android:ems="10" 
      android:hint="@string/loginEmployeeIDHint" 
      android:inputType="number" 
      android:text="@string/loginEmployeeID" /> 

     <EditText 
      android:id="@+id/loginPassword" 
      android:layout_width="200dp" 
      android:layout_height="40dp" 
      android:layout_marginTop="10dp" 
      android:ems="10" 
      android:hint="@string/loginPasswordHint" 
      android:inputType="textPassword" > 


     </EditText> 

     <TextView 
      android:id="@+id/LoginMACAddressLabel" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="25dp" 
      android:text="@string/LoginMACAddressLabel" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 
     <TextView 
      android:id="@+id/LoginDeviceMACAddress" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="25dp" 
      android:text="@string/LoginMACAddress" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/LoginFieldsLayoutRight" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"   
     android:layout_marginTop="75dp" 
     android:orientation="vertical" > 

     <ImageView 
      android:id="@+id/LoginIdPic" 
      android:contentDescription="@string/EmployeeImage"   
      android:layout_width ="wrap_content" 
      android:layout_height="wrap_content" 
      android:adjustViewBounds="true" 
      android:maxWidth="200dp" 
      android:maxHeight="200dp" 
      android:scaleType="fitCenter"   
      android:src="@drawable/idpic" >   
     </ImageView> 

     <Button 
      android:id="@+id/LoginScreenButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/loginButtonText" 
      android:layout_gravity="center" />      

    </LinearLayout> 

</RelativeLayout> 

這裏是我的strings.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string name="app_name">Inspector</string> 
    <string name="hello_world">Hello World!</string> 
    <string name="menu_settings">Settings</string> 
    <string name="loginScreenHeading">Device Login</string>  
    <string name="loginFirstName">First Name</string> 
    <string name="loginFirstNameHint">Enter your first name</string> 
    <string name="loginLastName">Last Name</string> 
    <string name="loginLastNameHint">Enter your last name</string> 
    <string name="loginEmployeeID">Employee ID</string> 
    <string name="loginEmployeeIDHint">Enter your employee ID</string> 
    <string name="loginPasswordHint">Password</string> 
    <string name="LoginMACAddressLabel">Device ID</string> 
    <string name="LoginMACAddress">00:00:00:00</string> 
    <string name="loginButtonText">Login</string> 
    <string name="EmployeeImage">Employee_image</string> 
</resources> 
+0

請訪問我們的常見問題。 –

回答

2

setText()應該工作而你不知道t必須將macAddrString轉換爲CharSequence(CharSequence是一個Interface和String實現它)。我相信,爲什麼你的應用程序崩潰是因爲你* 不准許添加*AndroidManifest.xml文件。

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>AndroidManifest.xml和你的問題應該得到解決。

+0

@Hunag,我也在成都,你可以留下你的電子郵件給我嗎? – aircraft

相關問題