你開發過程中是否遇到這樣子的需求:從當前的app跳轉到別的指定app,並且開啟指定app的某個頁面呢?如果你有這樣子的需求,那麼本文正好適合你的需求。
public class ActionActivity extends BaseActivity {
//指定app的包名
private static final String BKG = "";
//app的頁面名字(class),需要帶上對映路徑
private static final String CLASS_NAME = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_action);
this.findViewById(R.id.go_action).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PackageInfo packageInfo = Utils.getAppPackageInfo(ActionActivity.this, BKG);
if(packageInfo != null)
{
if(packageInfo.versionCode > 26)
{
openApp();
}
else
{
Toast.makeText(ActionActivity.this, "應用版本過低", Toast.LENGTH_SHORT).show();
goMarket();
}
}
else
{
goMarket();
}
}
});
}
/**
* 跳轉到應用
*/
private void openApp() {
Intent intent = new Intent();
intent.setComponent(new ComponentName(BKG, CLASS_NAME));
intent.setAction(Intent.ACTION_VIEW);
startActivity(intent);
}
/**
* 跳到應用市場下載
*/
private void goMarket(){
try
{
Uri uri = Uri.parse("market://details?id=" + BKG);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
catch(ActivityNotFoundException notFoundException)
{
Toast.makeText(ActionActivity.this, "沒有安裝應用市場", Toast.LENGTH_SHORT).show();
notFoundException.printStackTrace();
}
}
}
複製程式碼
本文內容很簡單,需要指定app的包名和頁面名(帶上對映路徑)即可,當你的手機上沒有安裝應用的時候就會跳轉到應用市場下載.如果安裝了該應用直接跳轉到頁面,邏輯實現主要看你的需求。