블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

[링크]

ekoold.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EB%8B%A4%EC%A4%91%EC%96%B8%EC%96%B4%ED%98%B9%EC%9D%80-%EC%A7%80%EC%97%AD%ED%99%94-%EC%96%B8%EC%96%B4%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EC%A0%95%EB%A6%AC

 

안드로이드 다중언어(혹은 지역화) 언어리스트 정리

안드로이드 어플이 다양한 언어를 지원하도록 다중언어(multiple language) 혹은 지역화(localization)를 해줍니다. 일반적으로 알고 있는 코드가 아닌 ISO 639-1 Code 값을 참고해야하구요~ [링크1] [링크2] r

ekoold.tistory.com

 

반응형
Posted by blueasa
, |

안드로이드 권한(Permisstion) 종류


사이트에가서 권한에 대한 정리를 해보았습니다. 짧은 영어로 해석한거라 의미가 애매하네요.

정확한 의미, 언제 사용 하는지 등을 아시는분은 댓글좀 달아주세요..


출처 : http://developer.android.com/reference/android/Manifest.permission.html


Constants
 ACCESS_CHECKIN_PROPERTIES

체크인데이터베이스의 속성테이블의 

읽고 쓰기 권한

 ACCESS_COARSE_LOCATION

코드(coarse)위치 권한(Cell-ID, WIFI)

gps사용시 선언.

 ACCESS_FINE_LOCATION파인위치(find  location) 허용(gps)
gps사용시 선언.
 ACCESS_LOCATION_EXTRA_COMMANDS추가적인 위치 제공(?)
gps사용시 선언해야함.
 ACCESS_MOCK_LOCATION

테스트용 mock 위치 제공자 생성
gps사용시 선언해야함.

 ACCESS_NETWORK_STATE네트워크 정보에 접근
 ACCESS_SURFACE_FLINGER하위 수준의 서페이스핑거를 사용
 ACCESS_WIFI_STATEwifi 정보에 접근
 ACCOUNT_MANAGERAllows applications to call into 
AccountAuthenticators.
 ADD_VOICEMAIL음성 이메일 추가 권한

AUTHENTICATE_ACCOUNTSAllows an application to act as 
an AccountAuthenticator for 
the AccountManager
 BATTERY_STATS

베터리 상태 권한

 BIND_APPWIDGET 
 BIND_DEVICE_ADMIN 
 BIND_INPUT_METHOD 
 BIND_REMOTEVIEWS 
 BIND_TEXT_SERVICE 
 BIND_VPN_SERVICE
 BIND_WALLPAPER

Live WallPaper를 서비스에서 

돌릴때 사용하였음.

 BLUETOOTH블루투스
 BLUETOOTH_ADMIN

블루투스 어드민

 BRICK

very dangerous!

 BROADCAST_PACKAGE_REMOVED제거된 app 패키지에 대한 
노티 브로드케스트
 BROADCAST_SMS

SMS 관련 권힌

 BROADCAST_STICKYbroadcast sticky intents.
 BROADCAST_WAP_PUSHAllows an application to broadcast 
a WAP PUSH receipt notification
 CALL_PHONE

전화 통화


CALL_PRIVILEGED

전화 통화

긴급통화 포함

 CAMERA

카메라 권한

 CHANGE_COMPONENT_ENABLED_STATE

CHANGE_CONFIGURATION

Configuration 관련 권한

 CHANGE_NETWORK_STATE

인터넷(네트워크) 권한

 CHANGE_WIFI_MULTICAST_STATEAllows applications to enter 
Wi-Fi Multicast mode
 CHANGE_WIFI_STATEWIFI 사용 권한
 CLEAR_APP_CACHE설치된 앱 캐쉬 
삭제 권한
 CLEAR_APP_USER_DATA유저 데이터 삭제 권한
 CONTROL_LOCATION_UPDATES

위치정보 갱신 권한
gps사용시 선언

 DELETE_CACHE_FILES캐시파일 제거권한
 DELETE_PACKAGES패키지 삭제 권한
 DEVICE_POWERAllows low-level access 
to power management
 DIAGNOSTIC

Allows applications to RW to 
diagnostic resources.

 DISABLE_KEYGUARDAllows applications to 
disable the keyguard
 DUMP

EXPAND_STATUS_BAR상태표시줄 확장 권한
 FACTORY_TESTRun as a manufacturer test 
application, running as the 
root user.
 FLASHLIGHT플래시라이트 권한
 FORCE_BACKAllows an application to force 
a BACK operation on whatever 
is the top activity.
 GET_ACCOUNTS
 GET_PACKAGE_SIZE패키지 사용 공간 관련 권한
 GET_TASKS태스트 관련 권한
 GLOBAL_SEARCH

HARDWARE_TESTAllows access to 
hardware peripherals.
 INJECT_EVENTS

INSTALL_LOCATION_PROVIDER

INSTALL_PACKAGES패키지설치 권한
 INTERNAL_SYSTEM_WINDOW

INTERNET인터넷 권한
 KILL_BACKGROUND_PROCESSESAllows an application to call 
killBackgroundProcesses(String).
 MANAGE_ACCOUNTS

MANAGE_APP_TOKENSAllows an application to manage 
(create, destroy, Z-order) 
application tokens in the 
window manager.
 MASTER_CLEAR
 MODIFY_AUDIO_SETTINGS오디오 관련 권한
 MODIFY_PHONE_STATE폰상태 관련 권한
 MOUNT_FORMAT_FILESYSTEMS파일 시스템 권한
 MOUNT_UNMOUNT_FILESYSTEMS파일 시스템 권한
 NFCNFC관련 권한
 PERSISTENT_ACTIVITYThis constant is deprecated. 
 PROCESS_OUTGOING_CALLS

전화 발신 체크 권한

 READ_CALENDAR

캘린더 관련 권한

 READ_CONTACTS주소록 관련 권한
 READ_FRAME_BUFFER프레임 버퍼 관련 권한

READ_HISTORY_BOOKMARKS웹 즐겨찾기 등 권한
 READ_INPUT_STATE입력 상태 관련 권한(키보드)
 READ_LOGS로그 관련 권한

READ_PHONE_STATE폰상태 관련 권한
 READ_PROFILE사용자 프로파일 관련 권한
 READ_SMSSMS문자 관련 권한
 READ_SOCIAL_STREAM
 READ_SYNC_SETTINGS
 READ_SYNC_STATS
 REBOOT재부틱 관련 권한
 RECEIVE_BOOT_COMPLETED부팅완료 관련 권한
 RECEIVE_MMSMMS 수신 관련 권한
 RECEIVE_SMSSMS(문자) 수신 관련 권한
 RECEIVE_WAP_PUSHWAP 푸시 권한
 RECORD_AUDIO

오디오 녹음 권한

 REORDER_TASKS태스크 z오더
 RESTART_PACKAGESThis constant is deprecated.

SEND_SMS

SMS(문자)보내기 권한

 SET_ACTIVITY_WATCHER

액티비티 감시등 권한

 SET_ALARM알람 관련 권한
 SET_ALWAYS_FINISH

액티비티 관리(종료) 권한

 SET_ANIMATION_SCALEModify the global animation 
scaling factor.
 SET_DEBUG_APPConfigure an application 
for debugging.
 SET_ORIENTATION화면 방향 지정 권한

SET_POINTER_SPEEDAllows low-level access to 
setting the pointer speed.
 SET_PREFERRED_APPLICATIONSThis constant is deprecated.
 SET_PROCESS_LIMIT실행 프로세스 제한 권한
 SET_TIME

시간 관리 권한

 SET_TIME_ZONE타임존 관리 권한
 SET_WALLPAPER배경화면 관리 권한
 SET_WALLPAPER_HINTS배경화면 힌트 관리 권한

SIGNAL_PERSISTENT_PROCESSESAllow an application to request that
 a signal be sent to all persistent 
processes
 STATUS_BAR

상태표시줄 관련 권한

 SUBSCRIBED_FEEDS_READ

SUBSCRIBED_FEEDS_WRITE
 SYSTEM_ALERT_WINDOW

UPDATE_DEVICE_STATSAllows an application to update 
device statistics.
 USE_CREDENTIALSAllows an application to request 
authtokens from the AccountManager
 USE_SIPAllows an application to use 
SIP service
 VIBRATE

진동 관련 권한

 WAKE_LOCK화면 켜기 관련 권한(알람.)

WRITE_APN_SETTINGSAPN 쓰기 관련 권한
 WRITE_CALENDAR캘린더 쓰기 관련 권한

WRITE_CONTACTS주소록 쓰기 관련 권한
 WRITE_EXTERNAL_STORAGE외부저장장치 관련 권한
 WRITE_GSERVICES

Allows an application to modify 
the Google service map.

 WRITE_HISTORY_BOOKMARKS

웹 즐겨찾기등 쓰기 권한

(not read)

 WRITE_PROFILE

사용자프로필쓰기 권한

not read

 WRITE_SECURE_SETTINGS
 WRITE_SETTINGS시스템 설정 쓰기 권한
 WRITE_SMSSMS(문자) 쓰기 권한
 WRITE_SOCIAL_STREAM

WRITE_SYNC_SETTINGS



출처: http://jwandroid.tistory.com/153 [초보 플밍지기]

반응형
Posted by blueasa
, |


출처: http://all4museum.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%95%B8%EB%93%9C%ED%8F%B0-%EC%A0%95%EB%B3%B4-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0



기본정보, 맥주소, 번호 가져오기


1.android.os.Build 클래스에서 기본정보 받아오기

http://developer.android.com/reference/android/os/Build.html

먼저 Manifest 을 열어서 다음 퍼미션을 추가하여 폰의 정보를 읽을 수 있도록 합니다.

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

그러면 android.os 패키지의 Build 클래스를 통해서 구할 수 있습니다.
Build 클래스 안에 static 변수로 선언되어 있으므로 그 값을 직접 받아오면 됩니다.

SDK 2.1 에서는 아래의 정보를 제공합니다.

Build.BOARD
Build.BRAND
Build.CPU_ABI
Build.DEVICE
Build.DISPLAY
Build.FINGERPRINT
Build.HOST
Build.ID
Build.MANUFACTURER  -> 제조사
Build.MODEL               -> 모델명 
Build.PRODUCT
Build.TAGS
Build.TYPE
Build.USER

제게는 제조사와 모델명이 가장 중요한 정보였습니다.

Build.SERIAL 같은 정보는 SDK 2.3부터 지원한다고 하네요.




2. 맥주소 가져오기

맥주소는 와이파이 하드웨어 맥주소이므로 와이파이의 상태에 접근할 수 있는 퍼미션을 부여합니다.

먼저, Manifest 파일에 다음 퍼미션을 추가합니다.
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

아래 코드로 값을 얻습니다.

WifiManager mng = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo info = mng.getConnectionInfo();
String mac = info.getMacAddress();





3. 폰번호 가져오기

폰의 정보를 읽어 올 수 있는 퍼미션을 부여합니다.

먼저, Manifest 파일에 다음 퍼미션을 추가합니다.
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

아래 코드로 값을 얻습니다.

TelephonyManager mng = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String num = mng.getLine1Number();



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



출처: http://batsu05.tistory.com/37






안드로이드 폰에서 Wi-Fi Mac 주소 가져오는 함수,
어떤 기계에서는 Wi-Fi 가 꺼져 있으면 못가져 온다고도 해서, 
Wi-Fi 가 활성화 되어있는지 체크하고 Mac 주소 가져옴.


  1. public String getCurrentMacAddress(){  
  2.     String macAddress="";  
  3.     boolean bIsWifiOff=false;  
  4.           
  5.     WifiManager wfManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);  
  6.     if(!wfManager.isWifiEnabled()){  
  7.         wfManager.setWifiEnabled(true);  
  8.         bIsWifiOff = true;  
  9.     }  
  10.           
  11.     WifiInfo wfInfo = wfManager.getConnectionInfo();  
  12.     macAddress = wfInfo.getMacAddress();  
  13.           
  14.     if(bIsWifiOff){  
  15.         wfManager.setWifiEnabled(false);  
  16.         bIsWifiOff = false;  
  17.     }  
  18.           
  19.     return macAddress;  
  20. }  




그리고 반드시 퍼미션을 지정해 줘야 함.

  1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
  2. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
  3. <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>  
  4. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>  
  5. <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/>  


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



출처: http://blog.naver.com/PostView.nhn?blogId=noeul_&logNo=140135587214


m_telephonyManager    =  (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
        wfmanager     = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);
        
        WifiInfo info    = wfmanager.getConnectionInfo();

 

        Log.i(TAG, " MDN 번호 "+m_telephonyManager.getLine1Number());
        Log.i(TAG, " IMEI "+m_telephonyManager.getDeviceId());
        Log.i(TAG, " MAC 주소 "+info.getMacAddress());
        Log.i(TAG, " 국가코드 "+m_telephonyManager.getNetworkCountryIso());
        Log.i(TAG, " 망 사업자 코드 MCC+MNC "+m_telephonyManager.getNetworkOperator());
        Log.i(TAG, " 망 사업자명 "+m_telephonyManager.getNetworkOperatorName());
        Log.i(TAG, " 가입자 ID "+m_telephonyManager.getSubscriberId());
        Log.i(TAG, " SIM카드 상태 "+m_telephonyManager.getSimState());

 

 

-퍼미션 설정 관련

 <uses-permission android:name="android.permission.INTERNET" /> 
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

 



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


출처: http://javaexpert.tistory.com/193


퍼미션 관련 : 

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

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

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


Mac 정보 및 전화번호 가져오기

public String getLocalPhoneNumber(){ //전화번호

     TelephonyManager manager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

     return manager.getLine1Number();

    }

public String getLocalIpAddress() {//맥 어드레스

        try {

            for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {

                NetworkInterface intf = en.nextElement();

                for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {

                    InetAddress inetAddress = enumIpAddr.nextElement();

                    if (!inetAddress.isLoopbackAddress()) {

                        return inetAddress.getHostAddress().toString();

                    }

                }

            }

        catch (SocketException ex) {

            ex.printStackTrace();

        }

        return null;

    }


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


출처: http://blog.naver.com/PostView.nhn?blogId=ziippy&logNo=120138070384



안드로이드 디바이스의 IP 구하기  Android 


[출처] 안드로이드 디바이스의 IP 구하기|작성자 지피


존에 사용하던 IP 구하는 코드는, 이런 상황에서 3G IP 를 리턴해 준다. 그럼 대략 난감;;;

 

[기존 코드]

public String getLocalIpAddress()
 {
  try {
         for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
             NetworkInterface intf = en.nextElement();
             for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                 InetAddress inetAddress = enumIpAddr.nextElement();
                 if (!inetAddress.isLoopbackAddress()) {
                     return inetAddress.getHostAddress().toString();
                 }
             }
         }
     } catch (SocketException e) {
         Log.e(DEBUG_TAG, "getLocalIpAddress Exception:"+e.toString());
     }
     return null;
 }

 

그래서 WiFi IP 가 있으면 그걸 사용할 수 있게 조금 수정함

 

[수정 코드]

public String getLocalIpAddress()
 {
  final String IP_NONE = "N/A";
  final String WIFI_DEVICE_PREFIX = "eth";
  
  String LocalIP = IP_NONE;
  try {
         for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
             NetworkInterface intf = en.nextElement();           
             for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                 InetAddress inetAddress = enumIpAddr.nextElement();
                 if (!inetAddress.isLoopbackAddress()) {
                  if( LocalIP.equals(IP_NONE) )
                     LocalIP = inetAddress.getHostAddress().toString();
                  else if( intf.getName().startsWith(WIFI_DEVICE_PREFIX) )
                     LocalIP = inetAddress.getHostAddress().toString();
                 }
             }
         }
     } catch (SocketException e) {
         Log.e(DEBUG_TAG, "getLocalIpAddress Exception:"+e.toString());
     }
     return LocalIP;
 }

 

확인 결과 WiFi 장치에 대해 getName() 을 해 보니 "eth0" 을 얻을 수 있었음.

그러므로 "eth" 로 시작하는 장치가 있는 경우 해당 IP 를 LocalIP 라고 판단함.

 

갤럭시S, 디자이어 에서는 테스트가 잘 되었는데.. 글쎄 다른 단말에서도 잘 될런지는 ㅎㅎㅎ

 

여하튼, 이렇게 수정해서 사용하니

위와 같은 상황에서도 WiFi IP 를 가지고 통신이 잘 된다는 ㅋ

 




//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



Android Device의 IP 주소 가져오기


안드로이드에서 사용자의 단말이 WiFi에 고정 IP로 접속 했을 경우,

가끔 IP주소를 가져와서 작업해야할 경우가 생긴다.

이럴 경우 다음의 소스를 사용하면 된다.












물론 코드에서 필요로 하는 것들은 import해야 한다. 





01.public String getLocalIpAddress() {
02.try {
03.for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)
04.{
05.NetworkInterface intf = (NetworkInterface) en.nextElement();
06.for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();)
07.{
08.InetAddress inetAddress = (InetAddress) enumIpAddr.nextElement();
09.if (!inetAddress.isLoopbackAddress())
10.{
11.return inetAddress.getHostAddress().toString();
12.}
13.}
14.}
15.} catch (SocketException exception)
16.{
17.Log.e("We got Exception here", exception.toString());
18.}
19.return null;
20.}




//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


출처: http://dark2pee.tistory.com/entry/Android-IP-Address-%EA%B0%80%EC%A0%B8%EC%98%A4%EB%8A%94-%EC%86%8C%EC%8A%A4-%EC%98%88%EC%A0%9C


[Android] IP Address 가져오는 소스 예제


package exercice1.identificateur.ex;
 
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
 
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import exercice1.identificateur.R;
 
public class wifi1 extends ListActivity {
private static final String LOG_TAG = null;
public String getLocalIpAddress() {
    try {
        for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
            NetworkInterface intf = en.nextElement();
            for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (SocketException ex) {
        Log.e(LOG_TAG, ex.toString());
    }
    return null;
}
 
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = new TextView(this);
      tv.setText(getLocalIpAddress());
      setContentView(tv);  
}
}

//조금 수정

public String getLocalIpAddress()
{
    try {
        for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
            NetworkInterface intf = (NetworkInterface)en.nextElement();
            for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                InetAddress inetAddress = (InetAddress)enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (SocketException ex) {
        Log.e(LOG_TAG, ex.toString());
    }
    return null;
}



출처 : http://202psj.tistory.com/588

반응형

'Programming' 카테고리의 다른 글

[링크] 예제로 배우는 GO 프로그래밍  (0) 2018.05.21
[펌] [iOS] info.plist Key 목록과 사용.  (0) 2018.03.26
Breakpad Client Libraries  (0) 2015.02.26
Posted by blueasa
, |

안드로이드 유니티 리모트 4 연동 문제 해결하기

안드로이드에서 유니티 리모트를 연동하기 법은 구글형이 잘 알려준다. 여기서는 자주 발생하는 문제에 대한 해결책을 정리한다.
  1. 폰이 인식되지 않는다
  2. 인증되지 않았다
  3. 유니티에서 Play를 해도 반응이 없다

폰이 인식되지 않는다

일단 USB를 꽂으면, 인식이 되고, 탐색기로 봤을 때, 폰이 보이고, 폴더에 접근하여 파일을 복사하거나 삭제할 수 있어야 한다.

확인방법

  1. 탐색기에서 보이는지 확인
  2. adb로 확인
  3. 폰의 개발자 모드에서 USB 디버깅 활성화 체크

해결방법

  1. USB 통합 드라이브를 설치한다. (구글형에게 문의)
  2. 콘솔명령창에서 adb devices를 실행한다.
  3. 폰 설정에 들어가서 USB 디버깅을 활성화 한다. (구글형에게 문의)

폰이 인증되지 않았다

폰이 인식되면, USB 디버깅을 활성화하면, 유니티에서 Play를 할 때, 개발 컴퓨터의 접속을 허가할 지, 폰에서 묻는다. 이 때, 잘 응답하면 문제가 없으나, 잘못하면 인증이 안된 상태가 된다.

확인방법

  1. adb devices를 했을 때, 폰은 나오나 Unauthorized라고 나온다.

해결방법

콘솔 창에서 다음 명령을 실행한다
  1. adb kill-server
  2. adb start-server
위의 명령을 하고 다시 유니티에서 Play를 하면 폰에서 인증창이 다시 나온다.

유니티에서 Play를 해도 반응이 없다

유니티가 실행된 후에 폰을 연결한 경우, 유니티가 인식을 못하는 경우가 있다

확인방법

  1. 위의 문제의 확인 방법을 통해서 문제가 없는데도 Play를 하면 안된다

해결방법

  1. 유니티 에디터를 재실행한다


출처 : http://junhan627.blogspot.kr/2014/11/4.html

반응형
Posted by blueasa
, |

유니티는 Profiler라는 기능을 지원하여 현재 사용중인 플랫폼의 어플 동작상태를 알수가있는데

폰과 연결이 되지않아 사용을 못하고있었는데 오늘 해결책을 알게되어 공유합니다.

 

1. 빌드시 Development Build 체크

2. Autoconnect Profiler 체크

 

빌드후 어플실행시 Profiler 가 실행되고, Active Profiler 에 AndroidPlayer가 보이게된다.

이때 AndroidPlayer 선택이 되지 않는다면

윈도우 커맨드창에(Console)

안드로이드SDK/platform-tools/ 폴더로 가서

 

adb forward tcp:54999 localabstract:Unity-패키지명(Product Name)

 

와 같이 입력후 다시 선택하면 됩니다.

(명령어 입력시 콘솔창에는 아무것도 어떠한 출력도 하지않고 다시 입력대기상태가됩니다.)

Profiler 를 이용하면 기기에서 어플 동작중 어떤 스크립트에서 CPU 를 얼마나 쓰다던지의 좋은 정보를 많이알수있기때문에 메모리와 퍼포먼스관련 문제를 해결하는데

큰 도움이 될꺼라 생각합니다.


* 회사메일로 공유한내용을 혹시나 도움이 되실까 올립니다 ㅎ



출처 ; http://www.gamecodi.com/board/zboard-id-GAMECODI_Talkdev-no-1919-z-2.htm 쿠하님



참조 : http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_QnA_etc&page=1&sn1&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=2364

반응형
Posted by blueasa
, |


링크 : http://shader.tistory.com/126

반응형

'Android > cocos2d-x' 카테고리의 다른 글

cocos2d-x (cocos2d c++버전)  (0) 2011.03.28
Posted by blueasa
, |

유니티를 안드로이드 버전으로 빌드하기 위해서 테스트를 해봤다.


내 폰은 아이폰이라 넣으면서 하진 못하고, 우선 apk 파일 만들기까지 해 봄..


아래는 안드로이드 빌드하기 위해 준비한 것 들.. 생각외로 간단하다..


1) 아래 링크로 가서 안드로이드 SDK를 설치한다.

    (http://developer.android.com/sdk/index.html)


2) JDK가 없으면 1) 설치 중에 JDK 설치하라고 뜬다. 아래 링크로 가서 Java SE를 받아서 설치해 주자..

    참고로 V7 버전이 빌드가 잘 안된다는 글이 있어서 V6으로 깔았다. 아래 링크에 두 버전 다 있음.. 선택..

    그리고, 윈도가 64bit(x64)라고 해서 64bit(x64)를 깔면 안됨.. 32bit(x86)로 깔라고 한다..

    (http://www.oracle.com/technetwork/java/javase/downloads/index.html)


3) 위 두 파일이 모두 설치되고 나면, 유니티의 'Edit-Preferences.-External Tools-Android SDK Location'으로 가서 폴더를 지정해 준다.(폴더 선택하러 들어가면 해당 폴더는 알아서 찾는 것 같다. 우측의 블럭된 폴더명을 삭제하고 그냥 '폴더 선택'을 누르면 된다.)


4) 'Android SDK Location' 셋팅을 하고 나서 'File-Build Settings-Platform'을 Android로 맞춘다.


5) 'File-Build Settings' 아래 Player 'Settings..' 를 누르면 Inspector 창에 이런저런 정보가 나오는데 아래와 같이 셋팅한다.

   (셋팅 설명은 있는데 정확히 무슨 옵션이고 뭘 위한건지 체크는 하지 못했다. 디폴트로 해보기도 해야될 것 같다.)

OtherSetting을 누르고

Identification 에서 Bundle Identifier 가 있는데 com.회사이름.플젝이름 이런식으로 고쳐서 써줌니다.

예) com.ABC.Project1

그리고 Minimum Api Level 에 현재 빌드할 폰의 안드로이드 버전에 맞게 설정합니다.

현재 폰의 버전보다 적은 버전해도 상관없음

Configuration 에서 Devices Level 을 ARMv6 with VFP 로 바꾸시고(Unity 4.x  버전에서는 ARMv7밖에 없으니 ARMv7로 하세요)

Graphics Level 을 OpenGL ES 1.x 로 바꿉니다.

그리고 Resolution and Presentation 을 누르고

Default Orientation 으로 어플의 뭐 가로세로 방향 을 고정시킬수있습니다.

Status Bar에 Status Bar Hidden은 핸드폰의 상단 바를 보이느냐 마느냐를 설정하는 것입니다.


6) 다하고나서 'File-Build Settings-Build' 를 하면 apk 파일이 생성된다.


7) 알아서 폰에 넣고 설치를..



참조 : http://cookzy.tistory.com/698

참조 : http://blog.naver.com/nameisljk/110136124090

반응형
Posted by blueasa
, |