2011-08-17 4 views
0

동일한 인증서로 서명 된 두 개의 Android 앱이 있습니다. 또한 "인 텐트 필터"태그에 이름을 지정하여 다른 안드로이드 응용 프로그램에서 한 응용 프로그램의 활동을 사용하고 있습니다. 그러나 "의도 필터"태그로 인해 타사 앱이 내 활동을 호출 할 수 있습니다.활동을 호출하는 타사 앱을 제한하는 권한을 만듭니다. android

두 앱 모두 동일한 인증서가 서명되었으므로 일부 허가를 제공하여 내 활동을 호출하는 다른 앱을 제한 할 수 있습니까? 이것에 대한 제안은 나에게 도움이 될 것이다. 당신의 활동이 당신보다 다른 응용 프로그램에서 사용되기 위하여 의미되지 않은 경우

-Ron ...

답변

0

첫째로 당신은 어쩌면 의도 필터를 제거 할 수 있습니다; 대신 명시 적 의도를 사용하지 않는 이유는 무엇입니까? 따라서 당신의 활동이 "실수로"를 생성 할 수 없습니다 만 의도적으로, 전이 :

다음
Intent explicitIntent = new Intent(InvokingActivity.this, InvokedActivity.class); 
startActivity(explicitIntent); 

은, 심지어 외부에서 그것을 방지하기 위해, 당신은 당신의 자신의 사용자 지정 권한을 정의하고 활동에 추가 할 수 있습니다; "signature"일 수있는 권한의 android:protectionLevel 속성을 살펴보십시오.

+0

답장을 보내 주셔서 감사합니다. 하나의 활동이 두 개의 앱을 공유하기 때문에 intent-filter 태그를 사용했습니다. 또한 활동에 android : protectionLevel = "signature"를 사용하는 방법에 대한 몇 가지 예를 게시 할 수 있습니까? – Ron

+0

2 개의 앱에서 직접 호출 할 클래스를 알고 있으므로 내재적 인 (즉, 인 텐트 필터를 통한) 대신 명시적인 의도 (내보기 참조)를 사용할 수 있습니까? – darma

+0

사실, 여기서 문제는 공유되는 로그인 활동이 있다는 것입니다. 만약 내가 새 앱을 만들면 명시 적 의도를 사용하면 잠시 후에이 명시적인 의도를 수정해야합니다. 그래서 intent-filter 태그를 사용하여 앱에서 인 텐트 이름만을 호출합니다. 이제는 새로운 앱을 만들지 만 인 텐트 이름을 사용하면 로그인 활동을 호출하는 데 도움이됩니다. – Ron

관련 문제