有個需求,想判斷手機里是否安裝指定的app,沒找到現成的代碼,參考Delphi代碼實現了一個,當返回空串時,表示沒有安裝app。
function GetVersionString(APackageName:string): string; //uses Androidapi.JNI.GraphicsContentViewText,Androidapi.Helpers,androidapi.jni.javatypes; var PackageInfo: JPackageInfo; PackageManager: JPackageManager; AppContext: JContext; begin AppContext := TAndroidHelper.Context; if AppContext <> nil then begin PackageManager := AppContext.getPackageManager; if PackageManager <> nil then begin try PackageInfo := AppContext.getPackageManager.getPackageInfo(StringToJString(APackageName), 0); except Exit(string.Empty); end; if PackageInfo <> nil then Exit(JStringToString(PackageInfo.versionName)); end; end; Result := string.Empty; end;
調用代碼:
if GetVersionString('com.kinglandsoft.xmyt')='' then begin //沒有安裝app ... end