是的,两个应用程序可以使用相同的进程名称。
给你两个建议:
1.查看进程名后,还需要查看app的签名。
其他应用可以使用与您相同的名称,但不能使用相同的签名。
//the code showing how to get siginature
PackageInfo info = getPackageInfoByName(context, pkgName);
byte[] sign = info.signatures[0].toByteArray();
//Add code here check whether the sign with your app
public static PackageInfo getPackageInfoByName(Context context, String packageName) {
try {
return context.getPackageManager().getPackageInfo(packageName,PackageManager.GET_SIGNATURES);
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Failed getPackageInfo", e);
}
return null;
}
2.您可以为您的服务添加签名级别的权限,作为binder的服务器。
//1.create a signature level permission in your AndroidManifest.xml
<permission
android:name="com.xyz.aa.permission.bindservice"
android:protectionLevel="signature">
</permission>
//2.Add the permission to your service
<service android:name=".MyService"
android:permission="com.xyz.aa.permission.bindservice">
</service>
要绑定服务的应用必须使用此权限,只有与你签名相同的应用才能使用此权限。