如何通过自己的应用,打开自己手机第三方应用

1)如果知道我们要打开的包名,类名(就是说这个要副应用是我们自己写的或者说我们很清楚)
然后就可以通过下面的代码直接打开
  
  
Intent intent=new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
//第一个参数是包名,第二个参数是类名
ComponentName cn=new ComponentName("com.example.kingwen.num2application","com.example.kingwen.num2application.MainActivity");
intent.setComponent(cn);
startActivity(intent);
 注意,如果说转到的第二个界面并不是最开始的界面,就是说不是用infilter声明的activity的话
,需要在新打开的界面中设置,这样就可以直接打开
   
   
<activity android:name=".SecondActivity"
android:exported="true"
></activity>

2)当我们不知道这个包名和类名的时候,我们可以通过包名来获得我们的启动的意图
   
   
Intent CameraIntent =getPackageManager().getLaunchIntentForPackage(pack[2]);
 
if(CameraIntent==null){
Toast.makeText(getApplicationContext(),"hello",Toast.LENGTH_SHORT).show();
 
GoToMarket(getApplicationContext(),pack[2]);
}else{
startActivity(CameraIntent);
}
当我们找不到这个包的时候就是意味着本机没有安装这个程序
然后通过我们的包的名字在应用商店中进行查找
   
   
public static void GoToMarket(Context context,String packagename){
 
Uri uri =Uri.parse("market://details?id="+packagename);
Intent goToMarket=new Intent(Intent.ACTION_VIEW,uri);
 
goToMarket.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(goToMarket);
}
从上面我们可以看出,我们主要的问题在于如何去查看各个软件的包
现在想到的就是如果说是我们要打开的是我们知道的,那样的话就可以直接写了,但是如果是我们不了解的,我们可以通过以下方式进行获得

方式一,通过minifest文件来进行获得。





而对于第一个我们所需要的就是说同时需要包名和类名的方法
类名,我们需要的是最开始启动的类名,就是说需要的是

这个地方所对应的类名

android.intent.action.MAIN决定应用程序最先启动的Activity

android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里

方式二通过反编译的方法进行获得

首先反编译需要两个工具,一个是dex2jar   另一个是jd-gui
具体用法
下载好自己需要反编译的apk文件
然后运行,进入cmd页面
进入到我们放dex2jar的目录下面   运行dex2jar.bat  apk的地址
enter
然后再apk所在目录下会有一个关于apk的jar包
打开jd,选择我们刚刚刚刚编译好的jar包
然后就能看到class文件
然后class文件中的最开头就可以找到我们所需要的包的名字


方式三:通过一些资料进行整理
com.andrew.apollo.ui.activities.HomeActivity                                CM 音乐apollo
com.bel.android.dspmanager.activity.DSPManager                        DSP管理器
com.android.vending.AssetBrowserActivity                                   google play 商店
com.uucun.android.cms.activity.MarketLoginAndRegisterActivity     魔趣市场
com.android.contacts.DialtactsActivity                                          拨号
com.android.gallery3d.app.GalleryActivity                                     图库
com.lbe.security.ui.SplashActivity                                                 LBE安全大师
com.cyanogenmod.filemanager.activities.NavigationActivity            CM 文件管理器
com.UCMobile.main.UCMobile                                                      UC浏览器
com.tencent.mobileqq.activity.SplashActivity                                  QQ
com.tencent.mtt.SplashActivity                                                     QQ浏览器
com.android.stk.stksettings                                                         SIM卡工具包
com.android.providers.downloads.ui.DownloadList                         下载
com.sds.android.ttpod.EntryActivity                                              天天动听
com.android.soundrecorder.SoundRecorder                                   录音机
com.android.phone.EmergencyDialer                                            手机
net.cactii.flash2.MainActivity                                                        手电筒
com.android.calendar.AllInOneActivity                                           日历
com.android.deskclock.DeskClock                                                  时钟
com.qqgame.hlddz.hlddzActivity                                                   QQ欢乐斗地主
com.android.browser.BrowserActivity                                            浏览器
com.android.email.activity.Welcome                                              Email
com.baidu.input.ImemainConfigActivity                                         百度输入法
com.android.camera.CameraLauncher                                           相机
com.android.mms.ui.ConversationList                                            信息
com.android.contacts.activities.PeopleActivity                                 联系人
com.qq.ac.android.activity.SPlashActivity                                        腾讯微漫
com.android.calculator2.Calculator                                                计算器
com.android.settings.Settings                                                        设置
com.mfunz.bbs.net.discuz.one.activity.SplashActivity                        魔趣论坛


apppackagelauncher
微博com.sina.weibocom.sina.weibo.SplashActivity
知乎com.zhihu.androidcom.zhihu.android.ui.activity.GuideActivity
薄荷com.app.onecom.app.one.ui.SplashActivity
关于这方面的比较好的文章有
点开看

http://blog.csdn.net/aaa111/article/details/41833189

方式四
还可以通过aapt方法进行获得包名
进到我们android 的jdk目录下面


然后可以在打印出的信息中找到mainactivity。从而得到包名

方式五
还可以直接通过直接进行解压看到


然后用notpad++进行编辑就可以找到


方式六
通过android自带的 adb shell,可以找到本机上所有应用的包的名字



上面这么多方法。总有一种适合你。恩,这篇文章就到这里了,希望能帮到大家。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值