자신의 패키지 이름은 개발자가 정하는것이니 누구나 알고 있겠지만 변경 되더라도 신경안쓰도록 API형태의 이름 구하는 방법이 필요합니다. 이런걸 어디에서 사용하느냐... ???? 대표적으로 런처에서 패키지 이름들을 구하는데 자신은 나오면 좀 이상하겠죠? 그래서 자신의 패키지 명을 알아두었다가 건너뛸때 사용하면 됩니다.
아래는 자신의 패키지 이름을 구하는 예제입니다.
getApplicationContext().getPackageName()너무 간단하여 pm.getApplicationInfo 정보를 몇가지 더 출력하여 보았습니다.
예제 소스:
public class MainActivity extends Activity { String PACKAGE_NAME; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); PackageManager pm = getPackageManager(); // 자신의 패키지 이름을 구한다. PACKAGE_NAME = getApplicationContext().getPackageName(); try { ApplicationInfo ai = pm.getApplicationInfo(PACKAGE_NAME, PackageManager.GET_META_DATA); String data = "getPackageName:" + PACKAGE_NAME + ",packageName:" + ai.packageName + ",processName:"+ai.processName + ",className:"+ai.className + ",publicSourceDir:" + ai.publicSourceDir + ",sourceDir:" + ai.sourceDir; Toast.makeText(this, data, Toast.LENGTH_SHORT).show(); Log.d("TEST",data); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } }
결과
09-10 15:43:23.206 31192-31192/com.example.temp.mytempapplication D/TEST: getPackageName:com.example.temp.mytempapplication,packageName:com.example.temp.mytempapplication,processName:com.example.temp.mytempapplication,className:com.android.tools.fd.runtime.BootstrapApplication,publicSourceDir:/data/app/com.example.temp.mytempapplication-1/base.apk,sourceDir:/data/app/com.example.temp.mytempapplication-1/base.apk
getPackageName:com.example.temp.mytempapplication
packageName:com.example.temp.mytempapplication
processName:com.example.temp.mytempapplication
className:com.android.tools.fd.runtime.BootstrapApplication
publicSourceDir:/data/app/com.example.temp.mytempapplication-1/base.apk
sourceDir:/data/app/com.example.temp.mytempapplication-1/base.apk
댓글 없음:
댓글 쓰기