안녕하세요.  

TStore에  APP 올리실 때 참고하는  ARM  설명서이  샘플이  버그가 있습니다.

샘플보고  그대로 만드셨다면,  

해당 어플은   에뮬에서도 돌고,  
폰이 아닌  유경의 P3 같은 폰기능이 없는  안드로이드 PMP 같은 것에서 돌고,
타사 폰에서도 그냥 사용가능할 여지가 충분이 있습니다.


TStore 고객지원에  넌즈시 알려주었더니   문제 없다고  그냥 무시하네요.

---------

안녕하세요 T Store 운영팀입니다.

에뮬레이터의 경우 실질적으로 라이센스 발급요청을 3G망을 사용하여 하지 않으므로
동작이 될 수 있으나 단말에서 실제 테스트를 하는 경우는 단말의 USIM값을 체크하여
동작하므로 타사 폰의 경우도 정상적인 ARM값을 체크하여 동작하게 됩니다.

참고 부탁 드립니다.
--------

TStore  설명서에  있는  소스  일부

-----------------
 
 public void onCreate(Bundle savedInstanceState)
   {
               super.onCreate(savedInstanceState);
               runArmService(); // ARM Check 프로세스 진행   
   }
   
   private boolean runArmService ( )
  {
          
try{
              if(armCon == null){
                       // bindService 진행
                     armCon = new ArmServiceConnection(); 
                     bindService(new Intent(IArmService.class.getName()), ----(1)
                                   armCon, Context.BIND_AUTO_CREATE);
            }
            return true;
        }catch(Exception e){
             releaseService();
             return false;
        }
   
} 

위 코드에서  문제가 되는 곳은 

onCreate()  에서    runArmService();   호출하고  그냥 진행합니다.

즉,  여기서 에러나오면   그냥 프로그램은 실행된다는 거죠.

실제 예뮬에서 해 보면,   예외오류 나옵니다.   
그냥 실행되죠.

타사폰의  경우,   SKT의   서비스가 올라가 있을리 없죠.
그런데,  SKT에서 만든 서비스와  bindService 합니다.  

그럼,  해당서비스 없다고  예외발생하겠지요.

그럼 또 그냥 프로그램 수행됩니다.

아래는 수정한 소스 입니다.

 private boolean runArmService()
    {
        boolean bRet = false;
        try{
            if(armCon == null){
                // bindService 진행
                armCon = new ArmServiceConnection(); 
                
            }
            bRet = bindService(new Intent(IArmService.class.getName()), armCon, Context.BIND_AUTO_CREATE);
        }catch(Exception e){
            // 비정상 적인 경우  
            e.printStackTrace();
            releaseService();
            
        }
        
        return bRet;
    }


   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        if (runArmService() == false) // SKT ARM Check 프로세스 진행
        {
            errorCopyRight(0);      // 에러 출력하는 함수
        }



SKT 답변 같아서는  이런 정보도  공유할 필요가 있을까 생각되지만,
그래도,  같은 안드로이드 개발자로서 서로 도움이 되었으면 해서 올려 봅니다.

수고하세요!