如何在android 系统intent7.0系统下通过intent安装apk

Android Activity中启动另一应用程序的方法,无需得到类名 - 短裤党 - ITeye技术网站
博客分类:
在网上搜索了一会相关的实现代码,发现所有的文章都说是需要包名和类名。但是人家的程序,我们怎么可能知道哪个是第一个启动的Activity?所以,真正用在项目上,那种方法基本上没什么用的。于是查看官方文档,发现这样一个方法:
public abstract Intent getLaunchIntentForPackage (String packageName)
英文原文:Return a “good” intent to launch a front-door activity in a package, for use for example to implement an “open” button when browsing through packages.大概意思就是返回一个程序入口的Intent,就是Java程序的Main方法。
这下简单了,直接startActivity(返回的intent)即可。
import java.util.ArrayL
import java.util.HashM
import java.util.L
import android.app.A
import android.content.I
import android.content.pm.PackageI
import android.content.pm.PackageM
import android.os.B
import android.view.V
import android.widget.AdapterV
import android.widget.ListV
import android.widget.AdapterView.OnItemClickL
public class Main extends Activity {
/** Called when the activity is first created. */
ArrayList&HashMap&String, Object&& items = new ArrayList&HashMap&String, Object&&();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv = (ListView) findViewById(R.id.lv);
final PackageManager pm = getPackageManager();
// 得到PackageManager对象
List&PackageInfo& packs = pm
.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
// 得到系统 安装的所有程序包的PackageInfo对象
for (PackageInfo pi : packs) {
HashMap&String, Object& map = new HashMap&String, Object&();
map.put("icon", pi.applicationInfo.loadIcon(pm));
map.put("appName", pi.applicationInfo.loadLabel(pm));
map.put("packageName", pi.packageName);
items.add(map);
// 循环读取存到HashMap,再增加到ArrayList.一个HashMap就是一项
adapter = new Adapter(this, items, R.layout.piitem, new String[] {
"icon", "appName", "packageName" }, new int[] { R.id.icon,
R.id.appName, R.id.packageName });
// 参数:Context,ArrayList(item的集合),item的layout,包含ArrayList中Hashmap的key的数组,key所对应的值相对应的控件id
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView&?& parent, View view,
int position, long id) {
// TODO Auto-generated method stub
String packageName = (String) items.get(position).get(
"packageName");
//取到点击的包名
Intent i = pm.getLaunchIntentForPackage(packageName);
//如果该程序不可启动(像系统自带的包,有很多是没有入口的)会返回NULL
if (i != null)
startActivity(i);
浏览 14010
一般第一个启动的Activty 会在项目的AndroidManifest.xml 文件里面有写到的 那问题搞定了哇?
gundumw100
浏览: 4044063 次
来自: 上海
本地lua脚本终于执行成功了,虽然不是通过redis
大神://处理返回的接收状态
这个好像没有监听到
拦截部分地址,怎么写的for(int i=0;i&lis ...
Android控件之带清空按钮(功能)的AutoComplet ...
希望有表例子更好。。。,不过也看明白了。Android 7.0新功能曝光:告诉你安装的软件来源
【PConline 资讯】近日随着谷歌安卓7.0的发布,关于安卓7.0的讨论也越来越多,而据外媒报道,谷歌在本周二正式放出了Android 7.0最终预览版。在该版本中,谷歌对应用程序的来源进行了更清晰的标注。据谷歌介绍,在新的&App Info&页面中,谷歌为&App Details&下方添加了一行标注,在这里用户可以看到,该应用的来源究竟是Google Play商店还是第三方。此外,该功能还能识别出该应用是否是通过拷贝的APK安装而来。&而在此前,用户如果想要查询应用来源,只能够通过&GetInstallerPackageName&的方法来获得这项信息。对于谷歌添加这一功能的做法,外媒推测,这很有可能暗示着谷歌正在采取限制正版应用拷贝的措施,或是为DRM数字版权管理作准备,不过这仅仅是推测而已。目前Android 7.0预览版仅提供给Nexus 6、Nexus 5X、Nexus 6P、Nexus 9、Pixel C和General Mobile 4G等手机。另外,尽管谷歌还需要进行一定的优化,但最新这一版预计将非常接近最终的Android 7.0体验,不过也有媒体报道称,谷歌下一代硬件设备Pixel设备也将在10月份发布,到时可能会直接搭载安卓7.1系统。不管如何,Android 7.0的发布之后,相信还是会有很多小伙伴们想体验一番吧,不过按照国内外手机厂商的更新速度,可能还没有这么快就可以体验到,所以还是先期待一下谷歌即将召开的发布会吧。
今日消息,据外媒报道,YouTube宣布推出首款专为Daydream设计的app,为让用户更好地体验谷歌Daydream VR头盔。VR版app可以使Yo...
相信有很多人都离不开手机支付,如果手机支付可以利用语音完成呢?那一定会更加方便,其实现实已经有存在,据外媒报道PayPal在近日发布一款iOS应用,最大特...
周董在一场排位赛中使用易大师carry全场,心情颇好的周董在公屏发言说自己就是周杰伦,还跟敌方路人开玩笑说要不要跟他学。而路人们对此纷纷表示不相信!更有路...
24小时内最火资讯
三日内热门评论文章本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 android onnewintent 的文章

 

随机推荐