[英]How to deploy an Android app update to Market with different cased package name
[英]how to compare package name from market url in android?
我正在開發一個包含廣播接收器的應用程序,並且當用戶單擊任何特定的應用程序(他將定向播放該應用程序並從jsons響應下載該應用程序時,也包含該應用程序的列表)時,所有應用程序都顯示在列表網址中,例如“ https:// play .google.com / store / apps / details?id = com.example.launcher “我要做的是,當應用程序成功在系統中下載后,如果匹配,我將從json響應url檢查該應用程序的應用程序包名稱顯示吐司其他錯誤消息。 請問我如何才能達到這個目的呢?
這是我的廣播接收器代碼:
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED"))
Log.e("Package Added:-", intent.getData().toString());
}
}
使用以下命令從URL中提取包名稱
String downPack = yourUrl.split("id\\=")[1];
從文件中提取包名稱
public String getPackageNameByAPK(String apkPath, Context context) {
String packName = "";
PackageManager packageManager;
PackageInfo packInfo;
try {
if (apkPath == null) return "";
if (context == null) {
return "";
}
packageManager = context.getPackageManager();
packInfo = packageManager.getPackageArchiveInfo(apkPath, 0);
packName = packInfo.packageName;
} catch (Exception e) {
e.printStackTrace();
}
return packName;
}
比較像
boolean matched = downPack.equals(getPackageNameByAPK(apkPath,context));
這可能對您有幫助。
@Override
public void onReceive(Context context, Intent intent) {
String installAppPackgeName = intent.getData().getSchemeSpecificPart();
String url = "https://play.google.com/store/apps/details?id=com.example.launcher";
String packageName = getQueryMap(url).get("id");
if(installAppPackgeName.equals(packageName)){
// If install app package name is same as url package name then do some task.
// Your app is installed now.
}
}
/**
* Get Query String as Key-Value Pair.
*/
public static Map<String, String> getQueryMap(String query) {
Map<String, String> map = new HashMap<>();
String[] queryString = query.split("\\?");
if(queryString.length>1){
String[] params = queryString[1].split("&");
for (String param : params) {
String name = param.split("=")[0];
String value = param.split("=")[1];
map.put(name, value);
}
}
return map;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.