C++을 사용하여 Android 용 cocos2d-x로 게임을 만들고 있습니다. 이제 버튼을 통해 내 게임에서 패키지 이름을 사용하여 다른 Android 앱 (좋아하는 YouTube, Google Play 스토어 등)을 열 수있는 방법을 찾고 있습니다. 나는 주위를 검색하고이 같은 자바 코드에서 수행 될 수 있음을 발견했다 :cocos2d-x를 사용하여 다른 Android 앱을 시작하는 방법은 무엇입니까?
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
if (launchIntent != null) {
startActivity(launchIntent);//null pointer check in case package name was not found
}
내 질문이입니다 : 내 네이티브 코드에서 다른 안드로이드 앱을 열 수 (.CPP 파일) 또는 java 측 (.java 파일)에 넣어야합니까? .java 파일에서이 작업을 수행해야한다면 어디서 처리해야합니까? 저는 항상 Visual Studio에서 .cpp 파일로 작업하고 cmd로 컴파일하고 Android Studio에서 에뮬레이터로 실행합니다. Android Studio에서 cocos2d-x로 생성 된 .java 파일로 작업 한 적이 없으며 엔진이 모든 것을 준비하게합니다. 여기 좀 혼란스러워.
업데이트 1 : 나는 다른 앱에있을 때
Abhishek 아리아의 조언 작동하지만 내 게임은 이력서에 추락했다. 내가 다른 사람의 응용 프로그램을 열기 전에 일부 작업을 수행하려고 해요 그리고 그 행동을 제거하고 떠날 경우 아무런 문제없이 실행할 수 있기 때문에 그들은 충돌을 일으킬 수 openApp
기능을 떠나.
내 기대 : 버튼을 누르십시오.> 내 게임을 일시 중지하고 Android에서 튜브 열기 => 뒤로 버튼 => 일시 중지 You Tube and my game.
무슨 일이 : 내가 튜브를 열 수 있지만 뒤로 버튼을 누르면 응용 프로그램이 다운되었습니다.
A/libc: Fatal signal 11 (SIGSEGV) at 0x0004fb18 (code=1), thread 1975 (Thread-55)
어떤 생각을 내가 어떻게 그것을 고칠 수 : 나는 안드로이드 스튜디오에서 다음과 같은 오류 코드가있어?
내 코드 :
auto imageOpeningAction = CallFunc::create([&]() {
mOpeningImage->setEnabled(true);
mOpeningImage->setOpacity(255);
mOpeningImage->setPosition(menuItem->getPosition());
mOpeningImage->runAction(fullScale);
});
auto imageClosingAction = CallFunc::create([&]() {
mOpeningImage->runAction(reverseScale);
mOpeningImage->setOpacity(0);
mOpeningImage->setEnabled(false);
});
auto openAnotherApp = CallFunc::create([&]() { // Open YouTube app
HelloWorld::openApp(packageName);
});
runAction(Sequence::create(imageOpeningAction->clone(), DelayTime::create(0.5f), openAnotherApp->clone(), nullptr));
여러분의 관심과 도움이 아주 많이 감사합니다.
안녕 @Abhishek 아리아가, 감사 답변을 위해, 그러나, 나는 내 응용 프로그램은 내가 다른 응용 프로그램에있어 누릅니다 때 다시 재개 할 충돌 문제로 실행 내 경기. 자세한 내용은 내 게시물의 ** 업데이트 1 **를 참조하십시오. –