2012-03-02 6 views
6

2 개의 애플리케이션이 있습니다.
app2 (protection level: signature)에서 권한을 정의하고 는 app1에 해당 권한을 사용 : 내가 서비스를 사용하는 경우
, 난 그렇게 만 app1app2에 의도를 보낼 수있는 권한을 설정할 수 있습니다.
app2의 서비스는 해당 권한에 의해 보호됩니다. 이런 식으로
app1app2, 에서 서비스에 의도를 보낼 수 있으며, (내 서명이 유출되지 않는 한) 다른 응용 프로그램은 app2에 서비스에 의도를 보낼 수 있습니다.특정 앱에서 Android 브로드 캐스트 수신기 제한

브로드 캐스트 수신기에서도 동일한 작업을 수행 할 수 있습니까?

  • APP1 : sendBroadcast (의도 허가)
  • APP2 : 해당 권한을 사용 권한을 정의합니다.

응용 프로그램은 sendBroadcast (의도, 권한) 사용에 대한 나의 이해를 위해 사용 권한을 "사용"할 필요가 없습니다. 의미하는 모든 응용 프로그램 은 app2에게 인 텐트를 보낼 수 있습니다. 이러한 사용 권한 매개 변수는 다른 응용 프로그램이이 의도를 수신하지 못하도록 app2에 대해서만 확인했습니다. 응용 프로그램 권한을 정의하고 그 자체를 사용하는 경우 는 protectionLevel,

BTW (나는 app2을 제거하고 정의와 동일한 권한 문자열 와 가짜 app2를 설치하는 경우, app2 가짜는 예기치 않은 app1의 의도를 얻을 수 있습니다) (서명)는 의미가없는 것 같습니다. 사실입니까? , 권한을 정의하는 권한을 사용

  • APP1 :

    지금, 나는 추가 권한을 설정할 수 있습니다.

  • app2 : 수신자는 해당 권한으로 만 제한됩니다. 하나 app1을 제거하는 경우

는 다시, 바로 그 권한이 app1 가짜 설치 한 후 가짜 app1app2에 가짜 의도를 보낼 수 있습니다. app2 가짜 인 텐트를받지 못하게하려면 어떻게해야합니까?

감사

+0

태그는 브로드 캐스터의 권한을 정의 할 수도 있습니다. http://developer.android.com/guide/topics/manifest/receiver-element.html#prmsn –

답변

5

또한 내가 당신이 이런 식으로 코딩 무단 방송에서 수신기를 보호 할 수 있습니다 의미 http://developer.android.com/guide/topics/manifest/receiver-element.html#prmsn

를 참조 방송사가 있어야 어떤 권한을 정의 할 수 있습니다 태그 :

... 
<permission android:name="com.yourapp.PERMISSION" 
    android:protectionLevel="signature" 
     android:label="@string/permission_label" 
     android:description="@string/permission_desc"> 
</permission> 
... 

<receiver android:name=".MyReceiver" 
    android:permission="com.yourapp.PERMISSION"> 
    <intent-filter> 
     <action android:name="com.yourapp.ACTION" /> 
    </intent-filter> 
</receiver> 
... 
관련 문제