A应用需要做的:
Intent intent = new Intent(); ComponentName comp = new ComponentName("demo.xx.xxxx", "demo.xx.xxxx.MainActivity"); intent.setComponent(comp); intent.putExtra("other", "true"); intent.setAction("android.intent.action.VIEW"); startActivity(intent);
用到ComponentName这个方法
参数一: 要跳转的应用包名 参数二: 要跳转的应用 包名+类名
B应用需要在Mainfest.xml文件中注册:
<activity
android:configChanges="orientation|keyboardHidden"
android:name=".MainActivity" >
<intent-filter >
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
这俩个是主要
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
代码:
//进行捕获异常 try { Intent intent = new Intent(); ComponentName comp = new ComponentName("demo.com.demointent", "demo.com.demointent.MainActivity"); intent.setComponent(comp); intent.putExtra("other", "true"); intent.setAction("android.intent.action.VIEW"); startActivity(intent); } catch (Exception e) { // 如果捕获到 错的话 弹出 对话框 让用户去 应用市场下载 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("前往应用市场下载"); builder.setMessage("由于你的手机没有商场APP"); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 此段代码 是跳转应用市场的代码 try { Uri uri = Uri.parse("market://details?id="+getPackageName());//getPackageName 指定应用市场上你的APK 包名就会直接跳转到你上传的应用 Intent intent = new Intent(Intent.ACTION_VIEW,uri); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } catch (Exception e1) { e1.printStackTrace(); // 捕获异常 Toast.makeText(MainActivity.this, "您的手机没有安装该应用", Toast.LENGTH_SHORT).show(); } } }); AlertDialog dialog = builder.create(); dialog.show(); }