我需要自己編寫一些util類,我需要android應用程序的包名。 雖然我發現了packageManager,它只能用在有上下文的Activity等等。我只想在我的類中獲取將在android應用中使用的packagename。那我該怎麼做?謝謝!如何在android中獲取包名?
回答
用途:getPackageManager().getPackageInfo(getPackageName(), 0).packageName
或者只是MyContext.getPackageName()
您也可以創建一個函數:
public String getPackageName(Context context) {
return context.getPackageName();
}
謝謝,也許我沒有描述清楚,這是一個普通的類,所以它沒有Context.The類將打包在一個用於android應用程序的jar。所以我無法獲得它的方法。 – user898366
所以創建一個這樣的函數: 'MyFunction(Context MyContext){ MyContext.getPackageName() }' – Guillaume
你可以安裝應用的應用包名稱:
ArrayList<PackageInfo> res = new ArrayList<PackageInfo>();
PackageManager pm = getApplicationContext().getPackageManager();
List<PackageInfo> packs = pm.getInstalledPackages(0);
,如果你想找到你的應用程序的軟件包名稱:
context.getPackageName();
謝謝,也許我沒有描述清楚,這是一個普通的類,所以它沒有Context.The類將打包在一個用於Android應用程序的jar。所以我不能得到它的方法。謝謝你們都是,但你們所有的答案都是一樣的。 – user898366
List<ApplicationInfo> packages;
PackageManager pm;
pm = getPackageManager();
get a list of installed apps.
packages = pm.getInstalledApplications(0);
ActivityManager mActivityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
for (ApplicationInfo packageInfo : packages) {
//packageInfo.packageName contains package name
}
謝謝,也許我沒有描述清楚,這是一個普通的類,所以它沒有Context.The類將打包在一個用於Android應用程序的jar。所以我不能得到它的方法。謝謝你們都是,但你們所有的答案都是一樣的。 – user898366
然後你可以發送一個參考的上下文,並可以使用這種方式 – Rasel
好吧,我想我必須讀取外面的靜態數據。 – user898366
您可以創建一個實用程序類是這樣的:
public class AppInfo{
private static Context cxt;
public static String PACKAGE_INFO;
public static String init(Context context){
cxt = context;
PACKAGE_INFO = cxt.getPackageName();
}
}
那麼你可以使用這種方式
public class MyActivity extends Activity{
@Override
public void onCreate(Bundle bundle){
...
AppInfo.init(getApplicationContext());
...
}
}
那麼你可以這樣調用它:
public class someClass{
public void someMethod(){
String packageInfo = AppInfo.PACKAGE_INFO;
//Do what you wish
}
}
我已經看到了以下兩種方式來獲得包名稱,從上下文變量開始:
context.getPackageManager().getPackageInfo(context.getPackageName(), 0).packageName
和
context.getPackageName()
會不會他們總是給出相同的答案?在某些情況下,最好使用另一種方法嗎?
以下常量可用,無需上下文。
BuildConfig.APPLICATION_ID
我認爲getPackageName()
可以在活動內直接使用,不需要致電getApplicationContext
。檢查它自己。工作很好。
將此添加到您的util類中。它確保處理不同的「風味」和調試/發佈版本,因爲其他答案不會:
@Nullable
public static String getApplicationPackageName(@NonNull Context context)
{
final PackageInfo packageInfo = getPackageInfo(context);
if (packageInfo.applicationInfo == null)
{
return null;
}
// Returns the correct 「java」 package name that was defined in your
// AndroidManifest.xml.
return packageInfo.applicationInfo.packageName;
}
// Convenience method for getting the applications package info.
@NonNull
private static PackageInfo getPackageInfo(@NonNull final Context context)
{
final PackageManager packageManager = context.getPackageManager();
try
{
return packageManager.getPackageInfo(context.getPackageName(), 0);
}
catch (final PackageManager.NameNotFoundException ignored)
{
//noinspection ConstantConditions: packageInfo should always be available for the embedding app.
return null;
}
}
- 1. android,如何獲取包名?
- 2. 如何從Android獲取apk包名?
- 3. 如何在Android中獲取應用程序的包名?
- 4. Java String-如何在android中獲取包名稱的一部分?
- 5. 如何從Android的包名獲取應用程序名稱?
- 6. 如何從android的包名獲取類名?
- 7. android如何從包中獲取文件名
- 8. 如何在C++上使用android toolchain獲取包名?
- 9. 如何在Android的棒棒糖版本後獲取包名稱
- 10. 我如何獲得android鎖屏包名
- 11. 如何在'包中,在Android應用程序中獲取文件
- 12. 動態獲取android鎖屏包名
- 13. Android獲取包名的安裝位置
- 14. 從包名中獲取.java
- 15. 從類中獲取包名
- 16. 如何獲取簡單包的表名?
- 17. 如何獲取作物包名稱使用Android設備
- 18. 如何從Android獲取包名和啓動器活動apk
- 19. Android:如何獲取Facebook重命名包名稱的命名空間?
- 20. Android - 如何從資源獲取名稱?
- 21. Android KSoap2:如何獲取屬性名稱
- 22. Android - 如何獲取文件擴展名?
- 23. 如何在dropdownlist中獲取包含值?
- 24. 如何在android中獲取USB模塊的名字
- 25. 如何在Firebase中獲取兒童名稱Android
- 26. 如何在Android中獲取對等設備的藍牙名稱?
- 27. 如何在Android應用程序中獲取Facebook用戶名
- 28. 如何在Android中獲取手機名稱
- 29. 如何在Android中按組名稱獲取聯繫人列表?
- 30. 如何在Android中獲取接入點名稱?
您是否需要安裝所有應用程序的包名? – Rasel
你不需要! – Guillaume