질문 : Android 브라우저에서 사용자 지정 Android 애플리케이션 실행
누구든지 Android 브라우저에서 내 Android 애플리케이션을 시작하는 방법에 대해 안내해 주시겠습니까?
답변
<data>
요소와 함께 <intent-filter>
를 사용하십시오. 예를 들어 twitter.com에 대한 모든 링크를 처리하려면이를 AndroidManifest.xml
<activity>
안에 넣습니다.
<intent-filter>
<data android:scheme="http" android:host="twitter.com"/>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
그런 다음 사용자가 브라우저에서 트위터 링크를 클릭하면 작업을 완료하기 위해 사용할 애플리케이션 (브라우저 또는 애플리케이션)을 묻는 메시지가 표시됩니다.
물론 웹 사이트와 앱 간의 긴밀한 통합을 제공하려는 경우 고유 한 스키마를 정의 할 수 있습니다.
<intent-filter>
<data android:scheme="my.special.scheme" />
<action android:name="android.intent.action.VIEW" />
</intent-filter>
그런 다음 웹 앱에서 다음과 같은 링크를 넣을 수 있습니다.
<a href="my.special.scheme://other/parameters/here">
그리고 사용자가 클릭하면 앱이 자동으로 실행됩니다 (왜냐하면 my.special.scheme://
유형의 uris를 처리 할 수있는 유일한 앱이기 때문일 것입니다). 이것의 유일한 단점은 사용자가 앱을 설치하지 않은 경우 심각한 오류가 발생한다는 것입니다. 그리고 확인할 방법이 있는지 잘 모르겠습니다.
편집 : 질문에 답하려면 Uri
객체를 반환하는 getIntent().getData()
그런 다음 Uri.*
메서드를 사용하여 필요한 데이터를 추출 할 수 있습니다. http://twitter.com/status/1234
링크를 클릭했다고 가정 해 보겠습니다.
Uri data = getIntent().getData();
String scheme = data.getScheme(); // "http"
String host = data.getHost(); // "twitter.com"
List<String> params = data.getPathSegments();
String first = params.get(0); // "status"
String second = params.get(1); // "1234"
Activity
어디에서나 위의 onCreate()
에서 수행하고 싶을 것입니다. params.size()
Uri
의 경로 세그먼트 수를 가져올 수도 있습니다. 특정 부분을 추출하는 데 사용할 수있는 Uri
메서드는 javadoc 또는 Android 개발자 웹 사이트를 참조하세요.
출처 : https://stackoverflow.com/questions/2958701/launch-custom-android-application-from-android-browser
'프로그래밍 언어 > Android' 카테고리의 다른 글
Android 애플리케이션의 활동간에 데이터를 전달하는 방법 (0) | 2021.10.12 |
---|---|
Android Studio 오류 'select Android SDK' 해결 방법 (0) | 2021.10.08 |
Android API 버전을 가져오는 방법 (0) | 2021.10.07 |
Android Studio에서 패키지 이름 바꾸기 (0) | 2021.10.07 |
Android TextView 텍스트 양쪽 맞춤 하는 방법 (0) | 2021.10.06 |