반응형
Facebook이 Android에 설치되어 있는지 확인하는 방법
사용자가 페이스 북 앱을 설치하지 않고 게시하려고 할 때 포착 할 수 있도록 앱을 수정하고 있습니다 (SSO에 필요). 내가 사용하는 코드는 다음과 같습니다.
try{
ApplicationInfo info = getPackageManager().
getApplicationInfo("com.facebook.android", 0 );
return true;
} catch( PackageManager.NameNotFoundException e ){
return false;
}
문제는 항상 오류를 포착한다는 것입니다. 여기 에있는 질문에 따라 적절한 권한을 요청해야하는데 어떤 권한을 요청해야하는지 모르겠습니다.
내 문제는 허가 또는 다른 것입니까?
com.facebook.android
Facebook SDK의 패키지 이름입니다. Facebook 앱의 패키지는 com.facebook.katana
.
Android에 앱이 설치되어 있는지 확인하려면 다음 방법을 사용하십시오.
public static boolean isPackageInstalled(Context c, String targetPackage) {
PackageManager pm = c.getPackageManager();
try {
PackageInfo info = pm.getPackageInfo(targetPackage, PackageManager.GET_META_DATA);
} catch (NameNotFoundException e) {
return false;
}
return true;
}
귀하의 경우 다음 패키지 중 하나를 사용하십시오.
- com.facebook.orca
- com.facebook.katana
- com.example.facebook
- com.facebook.android
boolean hasPackage = isPackageInstalled(MainActivity.this, "com.facebook.katana");
if (isAppInstalled()) {
Toast.makeText(getApplicationContext(), "facebook app already installed", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "facebook app not installing", Toast.LENGTH_SHORT).show();
}
public boolean isAppInstalled() {
try {
getApplicationContext().getPackageManager().getApplicationInfo("com.facebook.katana", 0);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
유틸리티 또는 당신을 위해 어느 곳에 나 적합한 기능을 작성하십시오.이 기능은 설치된 앱을 확인하는 데 도움이 될 것입니다. 유틸리티 .java에 있습니다.
public static boolean isAppInstalled(Context context, String packageName) {
try {
context.getPackageManager().getApplicationInfo(packageName, 0);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
그런 다음 어디서나이 함수를 호출하십시오. 예를 들어 페이스 북 앱 확인
if(Utilities.isAppInstalled(getApplicationContext(), "com.facebook.katana")) {
// Do something
}else {
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.facebook.katana"));
startActivity(i);
}
즐겨
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.facebook.katana"));
startActivity(i);
이 코드는 나를 위해 일했습니다.
가장 좋은 방법은 com.facebook을 포함한 패키지 이름을 선택하는 것이지만 어쨌든 다음 패키지를 사용할 수 있습니다.
- com.facebook.orca
- com.facebook.katana
- com.example.facebook
- com.facebook.android
참고 URL : https://stackoverflow.com/questions/6711295/how-to-check-if-facebook-is-installed-android
반응형
'developer tip' 카테고리의 다른 글
상위 모듈이 아닌 하위 모듈에서 Maven 플러그인 목표를 실행합니다. (0) | 2020.12.02 |
---|---|
JAXB : 목록에서 객체를 마샬링하는 방법? (0) | 2020.12.01 |
clang ++ / libc ++로 Boost를 컴파일 / 링크하는 방법은 무엇입니까? (0) | 2020.12.01 |
Subversion에서 특정 개정판의 파일 변경 사항을 보는 방법 (0) | 2020.12.01 |
Jackson을 사용하여 JSON을 다형성 유형으로 역 직렬화-전체 예제에서 컴파일 오류가 발생합니다. (0) | 2020.12.01 |