簡體   English   中英

在Android中獲取原始.APK文件的名稱

[英]Getting name of original .APK file in Android

我試圖弄清楚如何獲取安裝應用程序的原始.apk文件的名稱。 我知道您可以使用ApplicationInfo類檢索已安裝應用程序的包名稱和源目錄(此處描述: Android:如何以編程方式獲取apk文件的名稱? )但這不是我想要的。

舉個例子,假設我有一個名為TestApp的簡單應用程序(通過AndroidManifest.xml文件中的android:label標簽)。 此外,假設我為上面的應用程序生成.apk文件,將所述.apk文件重命名為TestApp_JohnDoe.apk ,然后將該應用程序通過電子郵件發送給John Doe進行安裝。 當John Doe通過單擊.apk文件安裝應用程序時,我希望能夠讀取我發送給他的原始.apk, TestApp_JohnDoe.apk的文件名。 使用ApplicationInfo類,更具體地說, sourceDir方法為我提供了安裝目錄和應用程序名稱/data/app/TestApp.apk ,這不是我想要的。 我知道可能會掃描所有可用的目錄,尋找原始的.apk文件,但我希望避免這種情況。

總之,我想以編程方式檢索安裝程序.apk的.apk文件名/源目錄,例如/storage/sdcard0/Download/TestApp_JohnDoe.apk ,而不是實際安裝的應用程序的.apk文件名/源目錄。 ,/ /data/app/TestApp.apk

可以讓應用程序知道在編譯時設置的apk名稱,如果這對您有用

applicationVariants.all { variant ->
    // Change the target apk file name and path
    String apk_path = "$rootProject.projectDir/bin"
    String apk_name = "john_doe.apk"
    project.delete(project.apk_path) //Delete any remains
    String apkFile = String.format("%s/%s", apk_path, apk_name)
    variant.outputs[0].outputFile = new File(apkFile)
    // This can be used in Java runtime by using getString(R.string.apk_name)
    resValue "string", "apk_name", apk_name
}

但是你在問什么,我很確定這是不可能的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM