2011-02-18 2 views
1

나는 코딩을 시도, 나는 google와 stackoverflow, 아무것도 찾지 못했습니다 : =) 그래서 잘하면 다른 사람이 더 나은 생각을 갖고, 잘 모르겠지만, 나는 모든 권리를 얻을 : 확실하지발사대에서 제거하지만 활성화/시작 가능을 유지

내가 2 응용 프로그램이 있습니다 광고 (주요 응용 프로그램)/adfree - 프로 (단지 라이센스는 광고없이 광고 응용 프로그램을 시작합니다 P)

그렇게 문제가 , 난에 (프로 아이콘) 프로 버전을 갖고 싶어 런처는 런처에없는 일반 광고 앱 (일반 광고 앱)을 시작합니다.

은 내가 (새 ComponentName (PACKAGE_NAME, PACKAGE_NAME + ".Main을"

pkgMgr.setComponentEnabledSetting (내 연구로 인해 그냥 런처에서 제거해야하는) 런처에서 광고 응용 프로그램을 제거하려고), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 에 결과

: 심지어하지 런처 프로 활동 단축키로, 하지만 응용 프로그램을 출시, 전화를 찾을 수 없습니다) 시작했다 런처에 아이콘이 정확합니다. 그것은 거기에있을 것 같습니다 (바로 가기를 만들 수 있습니다)하지만 내가 그것을 실행하려고하면 활동 예외와 충돌합니다. 38 :

02-18 (14) 59.237 : ERROR/AndroidRuntime (9941) : android.content.ActivityNotFoundException :에 의한 {PACKAGE_NAME/PACKAGE_NAME.Main} 명시 적 활동 클래스를 찾을 수 없습니다; AndroidManifest.xml에서이 활동을 선언하셨습니까? 나던

개 단지 런처의 항목을 제거보다 응용 프로그램이 일어난 것 같습니다 을 (오류 메시지)에 속하는 것 같다.

덕분에 많이들, 감사이 상황에 대한 모든 해결 방법 : 안부 :

답변

0

당신은 응용 프로그램이 설치되어 있어야하고 실행 아이콘을 숨길 수 없습니다. 내가 아이콘과 싸우려하지 않고 대신에 앱을 사용하여 시작할 수있는 것과 비슷한 방식으로 작동하는 응용 프로그램으로 주소를 지정하는 방식.

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    // check if main app is installed. If yes then start it 
    if (appExists()) { 
     Log.d(TAG, "Started main app from Pro"); 
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("myapp://com.myapp.main")); 
     startActivity(intent); 
     finish(); 
    } else { 
     // display view with link back to Market 
     onAppNotExists(); 
    } 
} 

그것은 appExists()을 구현하기 위해 당신에게 달려 아마 일부이다 : 분명히 당신은 다음 주 (무료) 응용 프로그램과 같이 보일 것이다 프로 아이콘에서 응용 프로그램을 실행 코드에서 할 필요가 없습니다 라이센스의 종류 또는 당신이 library project으로 앱의 공통 코드를 개발 한 다음 코드

+0

내 생각을 확인해 주셔서 감사합니다. 지금까지는 완벽하게 작동하는 프로 아이콘을 숨겨 왔지만 실행기는 아이콘을 1 개만 보여 줬지만 지금은 사용중인 사용자에게 보여주고 싶었습니다 (그리고 이점을 알게했습니다)) 프로 버전이므로 그 (것)들에게 분리되는 직업적인 아이콘을 사용할 가능성을주는 것처럼 보인다, 2 개의 아이콘은 피할 수 없다. 다른 사용자 : 요약 : hide license app works;) 메인 앱을 숨 깁니다. 나던. 답변 해 주셔서 감사합니다. – cV2

0

그러나 응용 프로그램을 복제하지 않고이 맛에 배포 할 수 있습니다, 물론

확인 전화, 시작, 시작, 런처 프로 활동 바로 가기가 아닐지라도 찾을 수 없습니다.

활동이 아니지만 활동.당신의 LAUNCHER 활동이 BaseActivity 경우

그래서, 당신은 BaseFakeActivity 같은 것을 만들 수 있습니다 (귀하의 BaseActivity 대신 매니페스트에 LAUNCHER로 설정하는 것을 잊지 마세요) 만 기능이 시작되는 당신의 BaseActivity 다음 finish() 자체 .

이제 BaseFakeActivity을 숨길 수 있지만 여전히 BaseActivity과 상호 작용할 수 있습니다.

추신 : 이렇게하면 앱의 동작을 테스트하는 것을 잊지 마세요.

+0

헤이 맨, 고마워, 아주 좋아. 리펙토링을하고있어. 완벽한 계획처럼 들리 네. 의견이 있으니 준비 됐을 때 대답 해줘. :) 오늘 밤 계획 했어. :) – cV2

관련 문제