2010-12-31 4 views
7

Android 앱에 권한을 정의하고 다른 타사 앱을 사용하도록하고 싶습니다. 이 권한은 모듈 호출을 제한하는 데 사용됩니다. 즉, 타사 앱은 안드로이드 시스템에서 정의한 시스템 권한 인 android.permission.INTERNET을 사용하는 것처럼 내 모듈에 전화 할 수있는 올바른 권한을 요청해야합니다.타사 앱이 Android에서 사용할 수 있도록 권한을 정의하십시오.

필자의 테스트에서 필자는 "my.apps.permission.my_permission"과 같이 내 응용 프로그램에서 권한을 정의한 다음 에뮬레이터에 설치했습니다. 일부 액티비티에서는 android : permission = "my.apps.permission.my_permission"속성이 추가되었습니다. 이 속성은 내 액티비티를 호출하는 앱에 올바른 권한 "my.apps.permission.my_permission"이 있어야합니다. 그런 다음 테스트 응용 프로그램에서 AndroidManifest.xml의 사용 권한을 요청하십시오. <uses-permission android:name="my.apps.permission.my_permission" />

테스트 응용 프로그램에서 startActivity()를 호출 할 때 내 권한이 필요한 작업을 호출 할 때 문제가 발생합니다. SecurityException : Permission 거부되었습니다. 하지만 테스트 앱에서 같은 이름의 권한을 정의하면 모든 것이 잘 동작합니다.

1)은 "my.apps.permission.my_permission"내 응용 프로그램에 정의 된 권한, 기타 제 3 자 애플리케이션에 보이지 않는 것을 보인다

는 그리고, 다음은 내 결론이다. 다른 앱이 Android 시스템에 정의 된 것과 같이 내 권한을 사용할 수 있도록 표시하려면 어떻게해야하나요?

2) 심지어 눈에 보이지만 Android는 이름이 충돌하는 사용자 정의 권한을 검사하지 않습니다. (테스트 앱에서 이름을 android.permission.INTERNET로 지정하여 테스트합니다. 시스템 정의 된 권한을 덮어 씁니다. , 그리고 내 애플 리케이션에서 "android.permission.INTERNET"을 요구하고, 여전히 모든 것이 잘 작동한다.) 그렇다면, 모든 다른 애플 리케이션은 내 모듈이 요구하는 것과 같은 이름으로 권한을 정의하고, 내 앱을 속일 수있다. 그게 맞습니까?

누구든지 도움을받을 수 있습니까? 감사합니다.

+0

,이 봐 당신은 그것을 찾고 있습니다 무엇 : MaratSafinWang 이봐, 당신이 샘플 코드를 제공 할 수 http://stackoverflow.com/questions/4425940/creating-your-own-permissions/21611769#21611769 – SuperManEver

답변

7

나는 대답을 얻었다. 다른 앱이 사용할 권한을 정의한 내 앱은 내 권한을 사용하려는 다른 앱보다 먼저 설치해야합니다. 그렇지 않으면 내 권한을 사용하기 위해 해당 앱을 다시 설치해야합니다. 다른 작업이나 코드는 필요하지 않으며 단지 <uses-permission android:name="my.apps.permission.my_permission" />이며 다른 시스템 정의 권한과 동일합니다.

그리고 여러 앱이 서로 충돌하여 같은 이름의 권한을 정의 할 수 있습니다. 설치된 첫 번째 앱은 충돌하는 권한 이름을 사용하고 다른 사용자는 원래 권한을 덮어 쓰거나 변경하지 않습니다.

+1

허가? –

+0

안녕하세요, 참고로 https://developer.android.com/guide/topics/manifest/permission-element.html을 사용하십시오. –

관련 문제