Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
if (launchIntent != null) {
startActivity(launchIntent);//null pointer check in case package name was not found
}
Intent intent = getPackageManager().getLaunchIntentForPackage("com.package.name");
if (intent != null) {
// We found the activity now start the activity
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} else {
// Bring user to the market or let them choose an app?
intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("market://details?id=" + "com.package.name"));
startActivity(intent);
}
여기에 더 나은 방법:
public void startNewActivity(Context context, String packageName) {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
if (intent != null) {
// We found the activity now start the activity
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
} else {
// Bring user to the market or let them choose an app?
intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("market://details?id=" + packageName));
context.startActivity(intent);
}
}
재거됨 복제본임을 코드:
public void startNewActivity(Context context, String packageName) {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
if (intent == null) {
// Bring user to the market or let them choose an app?
intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + packageName));
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
// check for the app if it exist in the phone it will lunch it otherwise, it will search for the app in google play app in the phone and to avoid any crash, if no google play app installed in the phone, it will search for the app in the google play store using the browser :
public void onLunchAnotherApp() {
final String appPackageName = getApplicationContext().getPackageName();
Intent intent = getPackageManager().getLaunchIntentForPackage(appPackageName);
if (intent != null) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} else {
onGoToAnotherInAppStore(intent, appPackageName);
}
}
public void onGoToAnotherInAppStore(Intent intent, String appPackageName) {
try {
intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("market://details?id=" + appPackageName));
startActivity(intent);
} catch (android.content.ActivityNotFoundException anfe) {
intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName));
startActivity(intent);
}
}
주요 활동을 모르는 경우 패키지 이름을 사용하여 애플리케이션을 시작할 수 있습니다.
하지만 내가 어떻게 알아, 그동안 답변됨 슬라이드에서는 구축됩니까 비슷한:
여기에 더 나은 방법:
재거됨 복제본임을 코드:
해결책을 찾았습니다. 애플리케이션의 매니페스트 파일에서 패키지 이름인 com.package.address와 실행하려는 주요 활동의 이름을 찾았습니다: MainActivity 다음 코드는 이 애플리케이션을 시작합니다:
누군가 내 예제에서와 슬라이드에서는 QR 코드 실행 표시줄에는 aspt it from my 유용한 앱 / 스캐너
비록 답변됨 잘 처리하는 게 꽤 단순한 경우 구축현 app 가 설치되지 않았습니다. I do it like this
복귀시킴 " applicationId"; 함께 패키지이므로 여시겠다고요 코맥구글리마프스 등 등.
이 경우 특정 활동을 여시겠다고요 다른 응용 프로그램을 사용할 수 있습니다.
반드시 필요한 경우 다른 응용 프로그램에서 보여주는 대신 대화상자의 토스트 표시할 수 있습니다. 사용자가 필요한 애플리케이션 사용 대화 다운로드할지 플레이 스토어 가져올 수 있습니다.
설치된 패키지가 반응하는 데이터와 동작을 알고 있다면 인텐트 인스턴스를 시작하기 전에 이러한 정보를 인텐트 인스턴스에 추가하면 됩니다.
다른 앱의 안드로이드 매니페스트에 액세스할 수 있는 경우 필요한 모든 정보를 확인할 수 있습니다.
새로운 활동을 시작할 단계를 다음과 같습니다.
패키지에 대한 1.get 의도
사용자의 의도를 널임 리디렉션할 2.if 플레이 스토어
오픈 작업을요 3.if 의도 is not null