public class activity_4 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_4);
//배열을 생성해서 값을넣고 어댑터를 이용해서 리스트뷰에 띄우는 것입니다.
//데이터를 배열에 삽입
ArrayList < String > arrayList = new ArrayList < String > ();
arrayList.add("전화번호 : " + getMyTelephony(1));
arrayList.add("아이피 주소 : " + getMyNetwork(1));
arrayList.add("맥 주소 : " + getMyNetwork(2));
arrayList.add("SSID,BSSID : " + getMyNetwork(3));
arrayList.add("IMEI : " + getMyTelephony(2));
//어댑터 준비
ArrayAdapter < String > adapter;
adapter = new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, arrayList);
//리스트뷰와 어댑터연결
ListView listView = (ListView) findViewById(R.id.list4);
listView.setAdapter(adapter);
}
//전화번호랑 IMEI를 보여줍니다.
public String getMyTelephony(int num) {
TelephonyManager tMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
switch (num) {
case 1:
{
String mPhoneNumber = tMgr.getLine1Number();
if (mPhoneNumber == "") {
return "번호없음";
}
return mPhoneNumber;
}
case 2:
{
String device_id = tMgr.getDeviceId();
return device_id;
}
}
return null;
};
//와이파이 정보를 보여주는 함수입니다.
public String getMyNetwork(int num) {
WifiManager wifiMgr = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
switch (num) {
case 1: //ip
int ip = wifiInfo.getIpAddress();
String ipAddress = Formatter.formatIpAddress(ip);
return ipAddress;
case 2: //mac
String macAddress = wifiInfo.getMacAddress();
return macAddress;
case 3: //SSID,BSSID
String a = wifiInfo.getSSID(); //blustak
String b = wifiInfo.getBSSID(); //mac주소?
return a + b;
case 4: //imei
//String imEi = wifiInfo.getDeviceId(); 함수없음
String androidID = android.provider.Settings.Secure.ANDROID_ID;
return androidID;
}
return null;
};
}
이게 액티비티 소스입니다.
리스트뷰에다가 몇가지 값들을 집어넣고 보여주는예입니다.
보시다시피 너무 더러운데요..
같은기능을 가진것끼리 묶자했는데 이렇게 되버렸네요.
혹시 좋은 방법이있을까요?
그리구 가령 액티비티1, 2,3,4에서
길게 클릭했을때 토스트메세지를 띄우고싶다.
이럴경우 onlongclick을 4개모두에 작성해야하나요?
아니면 다른방법이있을까요?