마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

웹에서 버튼을 누를때 특정 앱이 실행되게 하려 하는데 질문이 있습니다!

0 추천
웹에서 버튼을 누를때 특정 앱이 실행되게 하려 하는데 질문이 있습니다!

 

안녕하십니까!

저는 웹 개발자 입니다!

모바일웹에서 어떤 버튼을 누르면, QR코드 스캐너 앱이 실행되게 하려는데요!

(폰에 앱이 설치되있지 않을경우, 마켓 페이지로 이동되게 하려합니다.)

 

인터넷을 찾아본 결과 정리해보니 제가 연동을 원하는 앱의 AndroidManifest.xml 파일을 열어본 후

 

<intent-filter>

<action android:name="android.intent.action.VIEW"></action>

<category android:name="android.intent.category.DEFAULT"></category>

<category android:name="android.intent.category.BROWSABLE" ></category>

<data android:scheme="scan" android:host="scan"></data>

</intent-filter>

 

위에 나온 코드와 같은 인턴드 필터 구간에서

scan://scan (스키마://호스트)

방식으로 호출하면 앱이 실행된다고 나와있더군요. 하지만 앱을 설치하고나서 모바일 브라우저에서

주소창이 scan://scan 를 쳐도 웹서핑만 되고 앱 실행이 되지 않습니다.

인터넷 어딜 찾아봐도 스키마://호스트 방식으로 링크를 걸면 실행이 된다고 나와있는데,

왜 실행이 안되는 걸까요...?

 

제가 실행을 하고자하는 앱의

AndroidManifast 파일의 모든 코드는...

 

<?xml version="1.0" encoding="utf-8"?>

<manifest

xmlns:android="http://schemas.android.com/apk/res/android"

android:versionCode="28"

android:versionName="2.3"

android:installLocation="0"

package="me.scan.android.client"

>

<uses-sdk

android:minSdkVersion="10"

android:targetSdkVersion="19"

>

</uses-sdk>

<uses-permission

android:name="android.permission.CAMERA"

>

</uses-permission>

<uses-permission

android:name="android.permission.FLASHLIGHT"

>

</uses-permission>

<uses-permission

android:name="android.permission.INTERNET"

>

</uses-permission>

<uses-permission

android:name="android.permission.ACCESS_NETWORK_STATE"

>

</uses-permission>

<uses-permission

android:name="android.permission.WRITE_EXTERNAL_STORAGE"

>

</uses-permission>

<uses-permission

android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"

>

</uses-permission>

<uses-permission

android:name="android.permission.ACCESS_FINE_LOCATION"

>

</uses-permission>

<uses-permission

android:name="android.permission.VIBRATE"

>

</uses-permission>

<uses-permission

android:name="android.permission.CHANGE_WIFI_STATE"

>

</uses-permission>

<uses-permission

android:name="android.permission.ACCESS_WIFI_STATE"

>

</uses-permission>

<uses-feature

android:name="android.hardware.camera"

android:required="false"

>

</uses-feature>

<uses-feature

android:name="android.hardware.camera.any"

android:required="false"

>

</uses-feature>

<uses-feature

android:name="android.hardware.camera.autoFocus"

android:required="false"

>

</uses-feature>

<uses-feature

android:name="android.hardware.camera.flash"

android:required="false"

>

</uses-feature>

<uses-feature

android:name="android.hardware.location"

android:required="false"

>

</uses-feature>

<uses-feature

android:name="android.hardware.location.gps"

android:required="false"

>

</uses-feature>

<uses-feature

android:glEsVersion="0x00020000"

android:required="true"

>

</uses-feature>

<uses-feature

android:name="android.hardware.wifi"

android:required="false"

>

</uses-feature>

<application

android:theme="@7F0D0035"

android:label="@7F060055"

android:icon="@7F0200AA"

android:name="me.scan.android.client.dagger.application.ScanApplication"

android:allowBackup="true"

>

<meta-data

android:name="com.facebook.sdk.ApplicationId"

android:value="@7F060056"

>

</meta-data>

<meta-data

android:name="com.google.android.maps.v2.API_KEY"

android:value="@7F060057"

>

</meta-data>

<activity

android:label="@7F060055"

android:name="me.scan.android.client.ui.ScanActivity"

>

<intent-filter

>

<action

android:name="android.intent.action.MAIN"

>

</action>

<category

android:name="android.intent.category.LAUNCHER"

>

</category>

</intent-filter>

<intent-filter

>

<action

android:name="android.intent.action.VIEW"

>

</action>

<category

android:name="android.intent.category.DEFAULT"

>

</category>

<category

android:name="android.intent.category.BROWSABLE"

>

</category>

<data

android:scheme="scan"

android:host="scan"

>

</data>

</intent-filter>

<intent-filter

>

<action

android:name="android.intent.action.VIEW"

>

</action>

<category

android:name="android.intent.category.DEFAULT"

>

</category>

<category

android:name="android.intent.category.BROWSABLE"

>

</category>

<data

android:scheme="scan"

android:host="wifi"

>

</data>

</intent-filter>

<intent-filter

>

<action

android:name="android.intent.action.VIEW"

>

</action>

<category

android:name="android.intent.category.DEFAULT"

>

</category>

<category

android:name="android.intent.category.BROWSABLE"

>

</category>

<data

android:scheme="scan"

android:host="vcf"

>

</data>

</intent-filter>

</activity>

<activity

android:theme="@7F0D0040"

android:name="me.scan.android.client.ui.TextActivity"

>

</activity>

<provider

android:name="me.scan.android.client.contentproviders.ScanEventContentProvider"

android:exported="false"

android:authorities="@7F060058"

>

</provider>

<meta-data

android:name="com.crashlytics.ApiKey"

android:value="f52a8922145265e547c2427c5298695a77aaf982"

>

</meta-data>

</application>

</manifest>

 

입니다. 코드를 보면 인텐드 필터가 여러개 나와있는데, 저 곳에서 변수가 있는 것일까요...?

제가 뭘 착각했는지, 잘못했는지 알고 계신분은 제발 답변 부탁드립니다 ㅜㅜ
익명사용자 님이 2019년 2월 9일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...