시스템에서 인텐트가 사용가능한지 검사하는 코드. 안드로이드에서 가장 독특한 것 중에 하나가 바로 인텐트 시스템입니다. 다른 어플리케이션이 지원하는 인텐트들을 사용하여 쉽게 새로운 어플리케이션을 만들수가 있습니다. 그러나 내장된 인텐트가 아닌 경우 먼저 해당 인텐트가 사용가능한지를 검사해야합니다. 만약 인텐트가 없을 경우, 해당 기능을 사용하지 못하게 막거나 안드로이드 마켓에서 관련된 어플리케이션을 다운로드 받을 수 있도록 연결하면 됩니다.
인텐트 여부 검사
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
public
static
boolean
isIntentAvailable(Context context, String action) {
14.
final
PackageManager packageManager = context.getPackageManager();
15.
final
Intent intent =
new
Intent(action);
16.
List<ResolveInfo> list =
17.
packageManager.queryIntentActivities(intent,
18.
PackageManager.MATCH_DEFAULT_ONLY);
19.
return
list.size() >
0
;
20.
}
사용예제 - 인텐트가 사용가능 않은 경우 메뉴 Disable
01.
@Override
02.
public
boolean
onPrepareOptionsMenu(Menu menu) {
03.
final
boolean
scanAvailable = isIntentAvailable(
this
,
04.
"com.google.zxing.client.android.SCAN"
);
05.
06.
MenuItem item;
07.
item = menu.findItem(R.id.menu_item_add);
08.
item.setEnabled(scanAvailable);
09.
10.
return
super
.onPrepareOptionsMenu(menu);
11.
}
출처 : 안드로이드 개발자 블로그
http://android-developers.blogspot.com/2009/01/can-i-use-this-intent.html