본문 바로가기

프로그래밍/Android

앱 연동

 

>> 안드로이드 패키지명/액티비티 검색

http://activities.droidicon.com

 

앱의 실행

>> 패키지명으로 실행

String 패키지명

PackageManager pm = context.getPackageManager();

Intent intent = pm.getLaunchIntentForPackage(패키지명);

context.startActivity(intent);

 

>> 컴포넌트명으로 실행

ComponentName 컴포넌트명 

Intent intent = new Intent( Intent.ACTION_MAIN );

intent.addCategory(Intent.CATEGORY_LAUNCHER);

intent.setComponent(컴포넌트명);

context.startActivity( intent );

 

>> 설치된 패키지

PackageManager pm = context.getPackageManager();

List<PackageInfo> info = pm.getInstalledPackages(PackageManager.GET_ACTIVITIES);

for( PackageInfo i : info ) {

   info.packageName; // 패키지명

}

 

 

>> 앱 유무 검사 해서 컴포넌트명 얻기

PackageManager pm = context.getPackageManager();

Intent intent = new Intent("android.intent.action.MAIN");

intent.addCategory("android.intent.category.HOME");

intent.addCategory("android.intent.category.DEFAULT");

List<ResolveInfo> info = pm.queryIntentActivities(intent, 0 );

for( ResolveInfo i : info ) {

   String pkg = i.activityInfo.packageName; // 패키지명

   String cls = i.activityInfo.name; // 클래스명(android:name)

   if( pkg.contains( 패키지명 ) ) {

       return new ComponentName( pkg, cls );

   }

}

 

>> 실행중인 서비스 목록 얻기

ActivityManager am = (ActivityManager) context.getSystemService( Context.ACTIVITY_SERVICE );

List<RunningServiceInfo> info = am.getRunningServices( 100 ); 

for( RunningServiceInfo i : info ) {

   i.service.getPackageName();

}

 

>> 다른 앱의 리소스 접근

컨텐트 프로바이더 : 리소스를 접근할 앱끼지 프로바이더 정의해 사용

parcelable : 리소스 객체를 parcel로 전달

createPackageContext( 패키지명, 0) 으로 해당 패키지의 context를 얻어 사용

'프로그래밍 > Android' 카테고리의 다른 글

GoogleTV 개발환경 설정  (0) 2014.02.06
GCM 메시지 전송  (0) 2013.09.13
Dialog  (0) 2013.02.22
Fragment 기본  (0) 2012.12.28
EditText 특수문자 입력 제한  (0) 2012.09.10
Parcelable  (0) 2012.05.22
Data Animation???  (0) 2012.04.18
Assets 폴더의 이미지 읽기  (0) 2012.03.15
JSON  (0) 2012.01.31
HTTP POST/GET 몇가지 정리  (0) 2012.01.30