PackageManager tmxx = getPackageManager();
Log.v(TAG," clickedon going get intent");
Intent intent = tmxx.getLaunchIntentForPackage(packgename);
如果包名没有问题,得到的是null,原因应该是该包没有main activity。从而找不到入口。
在androidmanifest.xml设置main activity范例如下:
<activity android:name="ConfigureActivity" android:icon="@drawable/weather"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
一般两个属性是同时存在的。
一般没有这两个属性的是不能独立运行,或者对运行环境要求很严格。
今天遇到这个问题,因应用为第三方,从而有多个入口。所以解决方式就是,如为null就返回。防止报空指针。
getLaunchIntentForPackage 获取到的为null原因PackageManager tmxx = getPackageManager();Log.v(TAG," clickedon going get intent");Intent intent = tmxx.getLaunchIntentForPackage(packgename); 如果包名没有问题
Inte
nt
inte
nt
= get
Package
Manager().get
Launch
Inte
nt
For
Package
("com.example.app2");
if (
inte
nt
==
null
) {
Toast.makeText(getApplicationCo
nt
ext(),"没有安装该app",Toast.LENGTH_SHORT).show();
} else {
startActivity(
inte
nt
);
启动Activity的方法有很多种,其中通过
Package
Manger.get
Launch
Inte
nt
For
Package
(String
package
Name)
获取
Inte
nt
对象也可以启动Activity,代码如下:
Inte
nt
inte
nt
= get
Package
Manager().get
Launch
Inte
nt
For
Package
("com.android.vending");
应用中响应 android.
inte
nt
.action.MAIN 和 android.
inte
nt
.category.
LAUNCH
ER 在本文中称为主界面。
本文基于 Android O
用
Package
Installer安装应用,在安装完成界面里点击打开,应用闪屏页打开后,按Home键回到桌面,点击桌面里的应用图标。
问题点:再打开一个闪屏页。
问题
原因
应用中启动别的应用,以...
public void startApk(String
package
Name) throws NameNotFoundException {
Inte
nt
inte
nt
= new
Inte
nt
();
package
Manager.get
Package
Info(
package
Name, Pa...
public void StartAPP(String
package
NameStr)
Inte
nt
inte
nt
= get
Package
Manager().get
Launch
Inte
nt
For
Package
(
package
NameStr);
Android SDK中有这样一个API:
public abstract
Inte
nt
get
Launch
Inte
nt
For
Package
(String
package
Name)
如果
package
Name存在返回入口
Inte
nt
, startActivity(
Inte
nt
)可以启动应用,否则返回
null
import android.app.Activity;
下面有个小示例:
try {
Inte
nt
inte
nt
= mCo
nt
ext.get
Package
Manager().get
Launch
Inte
nt
For
Package
(
package
name);