2014-06-30 33 views
0

我正在制作一个隐藏我们呼叫号码的应用程序,但是当我们挂断电话时出现一个屏幕,其中显示手机号码如何找到包裹该屏幕的名称?如何找到应用程序之间出现的活动的包名称

final PackageManager pm = getPackageManager(); 
      //get a list of installed apps. 
      List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); 

      for (ApplicationInfo packageInfo : packages) { 
       Log.d(TAG, "Installed package :" + packageInfo.packageName); 
       Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
      } 

我想这一个,但我只得到我的应用程序包的名字不是android's activity package name

回答

0

您应该可能会得到正在运行前景的任务并从中提取包名称。

private String getCurrentTopPackage() { 

     ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
     List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1); 
     ActivityManager.RunningTaskInfo ar = RunningTask.get(0); 
     return ar.topActivity.getPackageName().toString(); 
    } 

您应定期运行线程或计时器任务以获取最顶级的活动包名称。

0

简单的,你可以通过使用得到它:

全球对类:

public static String PACKAGE_NAME; 

在的onCreate:

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

    PACKAGE_NAME = getApplicationContext().getPackageName(); 
} 

您可以然后通过Main.PACKAGE_NAME访问它。

相关问题