Mam aplikację na Androida, w której definiuję kilka różnych działań w manifeście. Niektóre z tych działań mają filtry zamiany, których używam (na przykład ACTION_PICK). Te działania, z powodu filtrów intencji, pojawiają się, gdy inne aplikacje żądają działania, aby obsłużyć ACTION_PICK. Czy jest jakiś sposób, aby temu zapobiec, aby moje działania nie były dostępne dla innych aplikacji? Próbowałem już ustawić android: exported = "false" w mojej aktywności, ale to nic nie znaczyło.Jak uniemożliwić innym aplikacjom Android dostęp do moich działań?
Odpowiedz
Musisz:
* zdefiniować uprawnienia (który jest dostępny tylko dla aplikacji posiadających podpis)
* określić, że aplikacja korzysta z określoną zgodę
* wymagać zgody na czynności, które mają być chronione. (Uważaj, aby nie wymagać tego dla głównej aktywności uruchamiania).
<!-- define a permission -->
<permission
android:protectionLevel="signature"
android:name="com.mypackage.MYPERMISSION"/>
<uses-permission android:name="com.mypackage.MYPERMISSION" />
<!-- define an activity which can only be started through internal code -->
<activity android:name="..."
android:permission="com.mypackage.MYPERMISSION" >
...
</activity>
Tylko w celu uzyskania kompletności, znaczniki zezwolenia i wykorzystania uprawnień znajdują się wewnątrz znacznika manifestu, ale poza znacznikiem aplikacji, a znaczniki aktywności wchodzą do znacznika aplikacji. Czy to jest poprawne? – Dominic
@ Dominic - tak, tak wyglądają moje manifestacje. Być może inne stanowiska też mogą działać, ale ich nie próbowałem. – mah
To powinno być zaakceptowane jako poprawna odpowiedź. – cgogolin
- 1. Jak uniemożliwić innym odczytanie pliku .htaccess?
- 2. Jak wyczyścić Android Stack działań?
- 3. Jak sygnalizować innym aplikacjom Cocoa, że preferencje zostały zmienione?
- 4. System.exit (0) nie zamyka wszystkich moich działań?
- 5. Jak uniemożliwić użytkownikowi subversion dostęp do części repozytorium?
- 6. Jak uniemożliwić anonimowym użytkownikom usuwanie/edytowanie moich dokumentów w couchDB?
- 7. Jak uniemożliwić programowi Android Studio automatyczne zwijanie moich pakietów w nawigację projektu?
- 8. Dodawanie przycisków do paska działań Android
- 9. Jak dodać wejście audio do AVCaptureSession i zezwolić innym aplikacjom na odtwarzanie muzyki w tle
- 10. Jak uzyskać dostęp do moich wartości formularza w document.ready
- 11. Jak zezwolić wszystkim aplikacjom na dostęp do pęku kluczy bez podpowiedzi
- 12. Android - uniemożliwić użytkownikowi zamknięcie aplikacji
- 13. wifi zmieniło działań w android
- 14. Co muszę zaimportować, aby uzyskać dostęp do moich modeli?
- 15. Perl: Dostęp do "moich" zmiennych z innego pliku
- 16. Python: dostęp do atrybutów i metod jednej klasy w innym
- 17. Dodaj ikonę wyszukiwania na pasku działań Android
- 18. Przeglądarka internetowa Android: przewijanie całego układu działań
- 19. Wysyłanie dalszych działań podczas obsługi działań
- 20. Jak mogę wyłączyć "powrót" do niektórych działań?
- 21. Zastąpienie metody OnResume() wszystkich działań Android
- 22. Android używający uprawnień superużytkownika? zezwalając na dostęp
- 23. Jak uniemożliwić dostęp do wszystkich katalogów dot z wyjątkiem .well-known?
- 24. Jak utworzyć ogólny układ XML systemu Android dla wszystkich działań
- 25. Wiele możliwych do przeszukiwania działań z sugestiami
- 26. Android: Dlaczego nie powinienem używać działań w zakładkach?
- 27. Dostęp do zasobów z projektu biblioteki Android?
- 28. Dostęp do obszaru z nieprawidłowego wątku Android
- 29. Jak uzyskać dokładną ścieżkę do "Moich dokumentów"?
- 30. Jak dodać AdSense do moich aplikacji
ups, tylko znaleźć odpowiedź tutaj: http://stackoverflow.com/questions/1571615/preventing-apps-from-invoking-my-activity/1571632#1571632 Czy jest jakiś sposób, aby usunąć to pytanie? – Dominic
Głosowałem, aby zamknąć twoje pytanie jako duplikat tego, który pokazałeś jako odpowiedź. Trzeba jeszcze 3 głosy, aby je zamknąć. – Squonk
W rzeczywistości odpowiedź, która napisała, jest znacznie bardziej zwięzła, więc może powinniśmy po prostu zachować to otwarte. – Dominic