在Android中,如何以编程方式(或通过其他方法)获取应用程序ID,以及如何使用该ID与其他应用程序进行通信?
答案 0 :(得分:106)
如果您要在gradle中查找applicationId
定义的值,则只需使用
BuildConfig.APPLICATION_ID
答案 1 :(得分:41)
如果按application id
提及package name
,则可以使用方法Context::getPackageName
(http://http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29)。
如果您希望与其他应用程序通信,有多种方法:
如果您能详细说明您的具体要求,社区将能够更好地为您提供帮助。
答案 2 :(得分:5)
我不确定您指的是什么“应用程序ID”,但是对于您的应用程序的唯一标识符,您可以使用:
来自当前活动的getApplication()。getPackageName()方法
答案 3 :(得分:1)
否则,您可以获取应用程序运行的进程ID:
final static int android.os.Process.myPid()
返回此进程的标识符,可以与killProcess(int)和sendSignal(int,int)一起使用。
答案 4 :(得分:1)
我不确定您需要的app /安装ID,但是您可以在Android开发人员的精彩文章中查看现有的可能性:
总结一下:
UUID.randomUUID()
用于在安装后第一次运行应用程序并在之后进行简单检索时创建ID TelephonyManager.getDeviceId()
用于实际设备标识符Settings.Secure.ANDROID_ID
在相对现代的设备上答案 5 :(得分:0)
PackageInfo.sharedUserId
字段将显示在清单中分配的用户ID 。
如果您希望两个应用程序具有相同的userId,那么他们可以看到彼此的数据并在同一个进程中运行,然后在清单中为它们分配相同的userId:
android:sharedUserId="string"
具有相同sharedUserId的两个包也需要具有相同的签名。
我还建议您阅读here以便在正确的方向上轻推。
答案 6 :(得分:0)
如果整个目的是与其他应用程序进行数据通信,请使用Intent的sendBroadcast方法。
答案 7 :(得分:0)
如果您使用的是新的** Gradle构建系统,那么getPackageName
将奇怪地返回应用程序ID,而不是包名称。所以MasterGaurav的回答是正确的,但他并不需要从++开始
如果按应用程序ID,则您指的是包名...
详细了解差异here。
**此时不是那么新
++我意识到他的答案在2011年完全有道理
答案 8 :(得分:0)
Android App ES文件资源管理器在“用户应用”部分显示Android包名称,这对Bitwarden非常有用。 Bitwarden将此称为“android应用程序包ID(或包名称)”。
答案 9 :(得分:0)
要跟踪安装,您可以例如使用UUID作为标识符,并在安装后首次运行应用程序时简单地创建一个新的。这是一个带有一个静态方法Installation.id(Context context)的名为“ Installation”的类的示意图。您可以想象将更多特定于安装的数据写入INSTALLATION文件。
public class Installation {
private static String sID = null;
private static final String INSTALLATION = "INSTALLATION";
public synchronized static String id(Context context) {
if (sID == null) {
File installation = new File(context.getFilesDir(), INSTALLATION);
try {
if (!installation.exists())
writeInstallationFile(installation);
sID = readInstallationFile(installation);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return sID;
}
private static String readInstallationFile(File installation) throws IOException {
RandomAccessFile f = new RandomAccessFile(installation, "r");
byte[] bytes = new byte[(int) f.length()];
f.readFully(bytes);
f.close();
return new String(bytes);
}
private static void writeInstallationFile(File installation) throws IOException {
FileOutputStream out = new FileOutputStream(installation);
String id = UUID.randomUUID().toString();
out.write(id.getBytes());
out.close();
}
}
您可以在https://github.com/MShoaibAkram/Android-Unique-Application-ID
看到更多内容答案 10 :(得分:0)
步骤1:Open the Google Play Store
第2步:在App Store中打开任何应用 Example: facebook
第3步:点击任意应用程序,然后查看浏览器链接,最后 id = com.facebook.katana&hl = zh_CN 将出现,this is your Apps Unique Id.
答案 11 :(得分:0)
包裹名称是您的android应用ID。
字符串appId = BuildConfig.APPLICATION_ID
或
https://play.google.com/store/apps/details?id=com.whatsapp
应用ID = com.whatsapp
答案 12 :(得分:0)
要获取AppId(或包名,有人怎么说),只需调用以下代码:
但是请确保使用您的应用ID包路径导入BuildConfig
BuildConfig.APPLICATION_ID