Android启动另一个应用(只需知道package name)
2017-02-23 00:00
316 查看
Android SDK中有这样一个API:
public abstract Intent getLaunchIntentForPackage (String packageName)
如果packageName存在返回入口Intent, startActivity(Intent)可以启动应用,否则返回nullimport android.app.Activity;
下面有个小示例:
getLaunchIntentForPackage 获取到的为null原因
PackageManager tmxx = getPackageManager();
Log.v(TAG," clickedon going get intent");
Intent intent = tmxx.getLaunchIntentForPackage(packgename);
如果包名没有问题,得到的是null,原因应该是该包没有main activity。从而找不到入口。
在androidmanifest.xml设置main activity范例如下:
一般两个属性是同时存在的。
一般没有这两个属性的是不能独立运行,或者对运行环境要求很严格。
今天遇到这个问题,因应用为第三方,从而有多个入口。所以解决方式就是,如为null就返回。防止报空指针。
public abstract Intent getLaunchIntentForPackage (String packageName)
如果packageName存在返回入口Intent, startActivity(Intent)可以启动应用,否则返回nullimport android.app.Activity;
下面有个小示例:
import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.view.View; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); PackageManager packageManager = getPackageManager(); Intent intent=new Intent(); intent =packageManager.getLaunchIntentForPackage("pkgName"); if(intent==null){ System.out.println("APP not found!"); } startActivity(intent); } }
getLaunchIntentForPackage 获取到的为null原因
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就返回。防止报空指针。
相关文章推荐
- Android启动另一个应用(只需知道package name)
- Android启动另一个应用(只需知道package name)
- Android启动另一个应用(只需知道pa…
- Android开发——通过广播启动另一个应用的Activity
- Android 在不知道ActivityName的情况下启动另一个程序
- Android从一个应用启动另一个主界面隐藏图标的应用
- android 在一个应用中启动另一个应用
- Android 一个应用启动另一个应用的说明
- android检测手机是否有某个应用以及启动安装另一个应用的问题
- Android相关浅析之根据packageName获取应用图标,应用名称等信息
- Android应用中如何启动另一个应用
- Android应用启动另一个应用
- Android启动一个只知道包名的应用
- Android在一个应用中启动另一个应用的Activity的办法
- Android应用更换package name以及ui refactoring error问题的有效解决
- Android 一个应用中启动另一个已安装的应用的方法
- Android中用一个应用启动另一个应用并传递参数
- android--通过广播启动另一个应用的Activity
- Android 通过广播启动另一个应用的Activity
- Android 一个应用启动另一个应用的说明