2011-08-11 45 views
1

我该如何去寻找motoblur和touchwiz上系统应用的软件包名称和主要活动名称?我正在制作一个应用程序,但我希望它是通用的,而不仅仅是感知和股票机器人。我实际上并不拥有运行touchwiz或motoblur的手机,所以我很难找到如何找到它们。由于查找系统应用程序的包和活动名称?

回答

1

注意,你不应该开始通过包/类名活动 - 系统应用因设备而异,活动类名称可能随应用程序更新而改变(我注意到谷歌地图曾经这样做过)。

另一个原因是用户可能更愿意使用他们安装的其他应用程序来执行特定任务(例如,我更喜欢使用第三方应用程序拍照)。

您应该通过系统定义的意图调用应用程序。

+0

谢谢,我在这一切都很新,所以我会用什么代码来做到这一点?或者有没有可以提供的链接?任何帮助表示感谢 – natehoch96

0

你需要收集信息关于安装的应用程序不是去通过list并搜索所需的活性

PackageManager packmngr = this.getPackageManager(); 
    Intent ints = new Intent(Intent.ACTION_MAIN, null) 
    ints.addCategory(Intent.CATEGORY_LAUNCHER); 
    List<ResolveInfo> list = packmngr.queryIntentActivities(ints, PackageManager.PERMISSION_GRANTED); 

ints.addCategory(Intent.CATEGORY_LAUNCHER); < ---在这里,您可以指定哪些类型的Intent(其中开发者在手机上在清单中定义的其他应用程序)使用查询进行搜索时,它可以通过CATEGORY_LAUNCHERCATEGORY_DEFAULT实际上主要活动的类型为CATEGORY_LAUNCHER

而且在列表中的琐碎迭代:

 for(ResolveInfo rlnfo: list) 
     { 
      //Adjust the code and do tests within here. 
      Log.i("ACTIVITY INFO: ", rlnfo.activityInfo.toString()); 
      Log.i("ACTIVITY NAME: ",rlnfo.resolvePackageName.toString()); 
     } 

入住这里了解常量和方法的详细信息: http://developer.android.com/reference/android/content/pm/PackageManager.html

相关问题