其他APP 跳转到光环助手某个页面

This commit is contained in:
khy
2016-08-12 09:33:57 +08:00
parent 99cfa2080f
commit 0861208b64
2 changed files with 139 additions and 76 deletions

View File

@ -549,81 +549,117 @@ public class MainActivity extends BaseFragmentActivity implements
});
AppController.addToRequestQueue(request, MainActivity.class);
}
private Class<?> intentClass(String to) {
Class aClass = null;
try {
aClass = Class.forName("com.gh.gamecenter."+to);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return aClass;
}
Runnable runnable = new Runnable() {
@Override
public void run() {
String from = getIntent().getStringExtra("from");
if (!TextUtils.isEmpty(from)) {
if (from.equals("plugin")) {
String packageName = getIntent().getStringExtra(
"packageName");
Intent intent = new Intent(MainActivity.this,
DownloadManagerActivity.class);
intent.putExtra("currentItem", 1);
intent.putExtra("packageName", packageName);
startActivity(intent);
} else if (from.equals("mipush_news")) {
Intent intent = new Intent(MainActivity.this,
NewsActivity.class);
intent.putExtra("entrance", "小米推送");
intent.putExtra("entity",
getIntent().getSerializableExtra("entity"));
startActivity(intent);
} else if (from.equals("mipush_new_game")) {
Intent intent = new Intent(MainActivity.this,
GameDetailsActivity.class);
intent.putExtra("entrance", "小米推送");
startActivity(intent);
} else if (from.equals("mipush_plugin")) {
try {
JSONObject jsonObject = new JSONObject(getIntent()
.getStringExtra("data"));
JSONArray jsonArray = jsonObject.getJSONArray("apk");
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject apk = jsonArray.getJSONObject(i);
String packageName = apk.getString("package");
if (PackageManager.isInstalled(packageName)) {
// 判断是否gh_version是否相同
String gh_version = (String) PackageUtils
.getMetaData(getApplicationContext(),
packageName, "gh_version");
if (gh_version != null) {
gh_version = gh_version.substring(2);
// 判断gh_version是否相同
if (gh_version.equals(apk
.getString("gh_version"))) {
// 判断version是否相同
String version = PackageUtils
.getVersionByPackage(
getApplicationContext(),
packageName);
if (version != null && version.equals(apk
.getString("version"))) {
// 版本相同,无需显示插件更新,继续查看是否有可更新的游戏包
continue;
}
}
}
list.add(packageName);
}
}
String to = getIntent().getExtras().getString("to");
if(!TextUtils.isEmpty(to)){
Intent toIntent = new Intent(getApplicationContext(),intentClass(to));
if("NewsActivity".equals(to)){
toIntent.putExtra("newsId", getIntent().getExtras().getString("newsId"));
toIntent.putExtra("entrance", getIntent().getExtras().getString("entrance"));
}else if("DownloadManagerActivity".equals(to)){
toIntent.putExtra("packageName" , getIntent().getExtras().getString("packageName"));
toIntent.putExtra("currentItem" , 1);
}else if ("GameDetailsActivity".equals(to)){
toIntent.putExtra("gameId", getIntent().getExtras().getString("gameId"));
toIntent.putExtra("entrance", getIntent().getExtras().getString("entrance"));
}else if ("SubjectActivity".equals(to)){
toIntent.putExtra("id", getIntent().getExtras().getString("id"));
toIntent.putExtra("name", getIntent().getExtras().getString("name"));
toIntent.putExtra("order", getIntent().getExtras().getBoolean("order"));
}else if ("ViewImageActivity".equals(to)){
toIntent.putExtra("urls" , getIntent().getExtras().getStringArrayList("urls"));
toIntent.putExtra("current" , getIntent().getExtras().getInt("current",0));
toIntent.putExtra("ScaleType" , getIntent().getExtras().getString("ScaleType"));
}
startActivity(toIntent);
}else {
String from = getIntent().getStringExtra("from");
if (!TextUtils.isEmpty(from)) {
if (from.equals("plugin")) {
String packageName = getIntent().getStringExtra(
"packageName");
Intent intent = new Intent(MainActivity.this,
DownloadManagerActivity.class);
intent.putExtra("currentItem", 1);
intent.putExtra("isPushIntent", true);
intent.putExtra("packageName", packageName);
startActivity(intent);
} catch (JSONException e) {
} else if (from.equals("mipush_news")) {
Intent intent = new Intent(MainActivity.this,
NewsActivity.class);
intent.putExtra("entrance", "小米推送");
intent.putExtra("entity",
getIntent().getSerializableExtra("entity"));
startActivity(intent);
} else if (from.equals("mipush_new_game")) {
Intent intent = new Intent(MainActivity.this,
GameDetailsActivity.class);
intent.putExtra("entrance", "小米推送");
startActivity(intent);
} else if (from.equals("mipush_plugin")) {
try {
JSONObject jsonObject = new JSONObject(getIntent()
.getStringExtra("data"));
JSONArray jsonArray = jsonObject.getJSONArray("apk");
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject apk = jsonArray.getJSONObject(i);
String packageName = apk.getString("package");
if (PackageManager.isInstalled(packageName)) {
// 判断是否gh_version是否相同
String gh_version = (String) PackageUtils
.getMetaData(getApplicationContext(),
packageName, "gh_version");
if (gh_version != null) {
gh_version = gh_version.substring(2);
// 判断gh_version是否相同
if (gh_version.equals(apk
.getString("gh_version"))) {
// 判断version是否相同
String version = PackageUtils
.getVersionByPackage(
getApplicationContext(),
packageName);
if (version != null && version.equals(apk
.getString("version"))) {
// 版本相同,无需显示插件更新,继续查看是否有可更新的游戏包
continue;
}
}
}
list.add(packageName);
}
}
Intent intent = new Intent(MainActivity.this,
DownloadManagerActivity.class);
intent.putExtra("currentItem", 1);
intent.putExtra("isPushIntent", true);
startActivity(intent);
} catch (JSONException e) {
e.printStackTrace();
e.printStackTrace();
}
} else if (from.equals("plugin_install")) {
Intent intent = new Intent(MainActivity.this,
DownloadManagerActivity.class);
intent.putExtra("currentItem", 0);
intent.putExtra("path", getIntent().getStringExtra("path"));
startActivity(intent);
}
} else if (from.equals("plugin_install")) {
Intent intent = new Intent(MainActivity.this,
DownloadManagerActivity.class);
intent.putExtra("currentItem", 0);
intent.putExtra("path", getIntent().getStringExtra("path"));
startActivity(intent);
}
}
}