2016-09-28 5 views
0

안드로이드 전화에서 열린 패키지 (앱)의 이름을 축하하고 싶습니다. 다시 다른 앱을 열면 특정 응용 프로그램의 패키지 이름은 토스트. 는 또한 나는이 모든 당신의 도움에 매우 감사 할 것입니다 서비스 를 사용하여 작업을 수행하고 싶습니다.열린 앱 패키지 이름을 축하하는 방법 (패키지 이름을 열면 토스트해야 함)

+0

"토스트 무언가"로 무엇을 의미합니까 –

+0

건배를하는 것을 의미합니까? – Bennyhuo

+1

이 정보가 도움이됩니까? http://stackoverflow.com/questions/2166961/determining-the-current-foreground-application-from-a-background-task-or-service – GoneUp

답변

-1

그래서 당신에게 열려있는 모든 앱의 패키지 이름을 표시해야합니다. 먼저 브로드 캐스트 수신기를 만드는 방법을 검색 한 다음 p 이 코드를 사용하십시오.

ActivityManager mgr = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 
    List<ActivityManager.RunningTaskInfo> taskInfo = mgr.getRunningTasks(1); 
    Log.d("topActivity", "Current Running Activity ::" 
      + taskInfo.get(0).topActivity.getClassName()); 

    ComponentName component = taskInfo.get(0).topActivity; 
    String packageName = component.getPackageName(); 
    Toast.makeText(getApplicationContext(), packageName , Toast.LENGTH_SHORT).show(); 

하면 매니페스트에이 권한을 추가

uses-permission android:name="android.permission.GET_TASKS" 

는 앱이 열리는 경우, 당신이 의도를 만들고 정상 활동이 당신의 배경 스레드에서 변경 될 때를 발사 할 감지하기.

+0

그는 패키지 이름을 얻고 싶습니다. –

+0

고맙습니다. 나는 브로드 캐스트 리시버를 사용하는 방법을 알지 못하는 안드로이드에 대한 새로운 경험을 바탕으로 백그라운드 스레드에서 의도를 생성합니다. 이전 프로그램에서도이 (브로드 캐스트 리시버) 프로그램을 추가 할 수 있습니까? 감사합니다. – Ank

1

를 사용하여 아래의 코드를 사용자의 실행 활동에

public static String PACKAGE_NAME; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    PACKAGE_NAME = getApplicationContext().getPackageName(); 

    Toast.makeText(this, PACKAGE_NAME , Toast.LENGTH_SHORT).show(); 
}