首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何找到出现在应用程序之间的活动的包名

如何找到出现在应用程序之间的活动的包名
EN

Stack Overflow用户
提问于 2014-06-30 04:51:18
回答 2查看 63关注 0票数 0

我正在制作一个隐藏我们调用的号码的应用程序,但是当我们挂断呼叫时,会出现一个显示移动电话号码的屏幕,如何找到该屏幕的包名?

代码语言:javascript
运行
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-30 04:56:37

您可能应该获得运行前台的任务并从中提取包名。

代码语言:javascript
运行
复制
 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
EN

Stack Overflow用户

发布于 2014-06-30 04:57:39

只需使用以下命令即可获得:

全班学生:

代码语言:javascript
运行
复制
public static String PACKAGE_NAME;

在onCreate中:

代码语言:javascript
运行
复制
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    PACKAGE_NAME = getApplicationContext().getPackageName();
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24483101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档