私はC++を使ってAndroid用のcocos2d-xでゲームを作っています。今では、自分のゲーム内のボタン名を使って別のAndroidアプリ(YouTube、Google Playストアなど)を開く方法を探しています。私の周りを検索し、それがこのようなもので、Javaコードで行うことができることを見出した: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
}
私の質問はである:それは私のネイティブコードで別のAndroidアプリを開くことは可能です(.CPPファイル)または私はそれらをJava側(.javaファイル)に入れなければなりませんか?私が.javaファイルでそれを行う必要がある場合、どこに置くべきですか?私はいつもVisual Studioで.cppファイルを使って作業し、cmdでコンパイルし、Androidスタジオでエミュレータで動作させます。私はAndroidスタジオでcocos2d-xで生成された.javaファイルで作業したことはありません。ここでちょっと混乱しました。
アップデート1:
アビシェークアーリア人のアドバイスは動作しますが、私は別のアプリケーションにいるとき、私のゲームは、履歴書に墜落しました。私は他のアプリを開く前にいくつかのアクションを実行しようとしています。それらのアクションを削除してopenApp
の機能だけを残すと問題なく実行できるため、クラッシュが発生する可能性があります。
私の期待:ボタンを押す=>私のゲームを一時停止し、あなたのAndroidでチューブを開く=>押し戻るボタン=>あなたはチューブを止めてゲームを再開します。
どうすればいいですか:私はあなたのチューブを開くことができましたが、戻るボタンを押すとアプリケーションがクラッシュしました。
A/libc: Fatal signal 11 (SIGSEGV) at 0x0004fb18 (code=1), thread 1975 (Thread-55)
任意のアイデアは、私はそれをどのように修正することができます:私は、Android Studioから次のエラーコードを得ましたか。
マイコード:
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アーリアを開きたい、あなたの答えのためのおかげで、しかし、私は別のアプリケーションにいるとき、私のアプリがクラッシュした問題に遭遇したとプレス戻って私を再開するためにゲーム。詳細は、私の記事の** Update 1 **をご覧ください。 –