アプリと、別のアプリの機能を拡張する別のアプリがあります。メインアプリから他のアプリにインテントを送信してstartActivityForResult
存在を確認し、チェック値を取得するために使用していますが、ランチャーからアイコンを非表示にする機能もユーザーに提供したいと考えています。問題は、アイコンが非表示の場合、Intent がアプリがインストールされていないと見なすことです。どうすればこれを修正できますか?
プロアプリの存在を確認する方法
if (!ISPRO) {
Log.d("ProApp", "Check for existence of pro app");
Intent pro_app = new Intent("android.intent.action.MAIN");
pro_app.setComponent(ComponentName.unflattenFromString("my.app.pro/my.app.pro.Index"));
pro_app.addCategory("android.intent.category.LAUNCHER");
pro_app.putExtra("my.app.check_code",
"thisIsMyCheckCode");
try {
startActivityForResult(pro_app, 0);
Log.d("ProApp", "startActivityForResult started");
} catch (ActivityNotFoundException e) {
Log.w("ProApp", "WARNING! The pro app doesn't exist");
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == 0) {
Log.d("ProApp","Pro functions unlocked");
ISPRO = true;
}
}
チェック値をメインアプリに送り返す方法
Bundle bundle = this.getIntent().getExtras();
String check_Code = new String("");
if (bundle != null)
check_Code = bundle.getString("my.app.check_code");
if (check_Code.equals("thisIsMyCheckCode")) {
Intent retcode = new Intent();
setResult(RESULT_OK, retcode);
finish();
}
プロアプリのアイコンを非表示にする方法
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
前もって感謝します。