2014-11-14 2 views
-1

다음과 같은 상황이 있습니다. 또 다른 응용 프로그램은 startActivityForResult를 사용하여 mine을 호출합니다. 저는 호출하는 액티비티가 개발자로부터 온다고 확신해야하므로 개발자 공개 키를 읽고 앱에서 하드 코드 된 값과 비교하려고합니다. 나는 다음과 같은 시도 :Android : 개발자의 공개 키를 호출하는 방법

String packageName = callingActivity.getPackageName(); 
String signature = null; 
try { 
    PackageInfo pi = manager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES); 
    // assumption: get the first available signature 
    // actually according to Google for applications there will be always one element 
    signature = pi.signatures[0]. toCharsString(); 
} 

를하지만 나에게 응용 프로그램 (안 개발자) 서명을 제공합니다.

+0

공개 키를 공유해도 괜찮으므로 잘못된 것 같습니다. 내 코멘트를 무시하십시오 – Mixaz

답변

2

이 목적으로 안드로이드 맞춤 권한을 사용하십시오. 애플리케이션에서 권한을 정의하면 매니페스트에서 사용 권한이없는 한 활동/서비스를 사용하는 다른 앱을 제한 할 수 있습니다. 대한 추가 정보를 원하시면이 읽기 : 나는 그것을 깰 것이기 때문에, 그에 대한 API가있을 수 의심

https://stackoverflow.com/a/8817231/607968

+0

정말 나를위한 옵션이 아닙니다. 몇 가지 이유가 있지만 주된 내용은 다음과 같습니다. http://commonsware.com/blog/2014/08/04/custom-permission-vulnerability-l-developer-preview.html – Marcin

관련 문제