2010-12-06 4 views
4

우리는 현재 응용 프로그램 매니페스트를 수정하여 uses-feature 속성을 명시 적으로 사용하여 하드웨어 및 소프트웨어 API에 대한 모든 종속성을 선언합니다.android.hardware.telephony는 에뮬레이터에서 설치를 중단합니다.

사용자가 모바일 인터넷을 사용할 것으로 예상하므로 android.hardware.telephonytrue으로 설정했지만 이제 앱이 에뮬레이터에 설치되지 않습니다. 오류 메시지는 다음과 같습니다

Failure [INSTALL_FAILED_MISSING_FEATURE] 

는 심지어 장치 로그에 추가 정보가 없다, 그러나 나는 전화 기능을 일으키는 것을 시행 착오를 알아낼 수 있습니다.

에뮬레이터는 전화 기능을 지원하므로 (호출 디스패치도 시뮬레이트 할 수 있음) 왜 이렇게 중단됩니까? 또한 전화 통신을 지원하지 않는다고 정확하게보고하더라도 uses-feature은 에뮬레이터가 아닌 실제 장치를 대상으로하는 것이 확실하지 않아야합니까?

its documentation은 Android 마켓에 대한 필터링 규칙에만 영향을 미친다는 것을 의미하는 것으로 보입니다. 나는 uses-feature이 앱의 설치 가능성에 직접적인 영향을 미친다는 언급이 어디인지는 볼 수 없다. 단지 docs 속성에 대한 선언적/정보 적 성격을 뛰어 넘는 것처럼 보인다.

어쨌든 사용하는 것이 좋지 않을까요? 에뮬레이터 설치가 항상 실패하기 때문에 우리 빌드 서버가 더 이상 실행되지 않습니다 ...

+0

정확히 무엇이 오류 메시지입니까? –

+0

죄송합니다. 표시되는 오류 메시지를 추가했습니다. – Matthias

+0

그건 이상한 일이지만 정말로이 제한을 두길 원합니까? 사용자가 Wi-Fi 서비스를 제대로 이용할 수 있고 월 단위 모바일 청구서를 선택하지 않을 수 있습니다. –

답변

0

저는 전화 통신을 사용하고 2.2 에뮬레이터에서 잘 작동하는 응용 프로그램을 가지고 있으며 필수 속성을 false로 이미 설정했다고 가정합니다 매니페스트에 :

<uses-feature android:name="android.hardware.telephony" android:required="false"/> 

그런 경우, 내 생각 엔 에뮬레이터 및 오류의 원인에없는 매니페스트에 선언 다른 기능이나 권한이 있다는 것입니다. 시행 착오를 통해 그것을 사냥하십시오.

+0

잘 모르겠다 - 앱에 전화가 필요한 경우 해당 기능을 'true'로 설정해서는 안됩니까? 내가보기에 문제는 에뮬레이터가 전화 통신을 지원하는 동안 실제로는 안드로이드에보고한다는 것입니다. – Matthias

+0

필수 항목의 기본값은 true입니다. 필요한 기능의 사용을 선언하고 장치가이를 지원하지 않으면 설치가 불가능하고 시장에서 필터링됩니다. TelephonyManager를 처리 할 때 내 응용 프로그램에서 특수 사례로 에뮬레이터를 처리해야했습니다. –

0

기본적으로 당신이 지원 더 많은 기능과 더 최근의 Emulater를 사용하는, 또는 대안 당신이 할 수있는 다음과 같은 필요 :

1.Comment을하거나 매니페스트 XML 파일에서 다음 줄을 제거

<!-- COMMENT ME --> 
<uses-feature android:name="android.hardware.telephony" /> 

또는

2.Add 다음

<!-- UNCOMMENT ME and add android:required="false" --> 
<uses-feature android:name="android.hardware.telephony" android:required="false"/> 

올바르게하면 잘 가야합니다.

See Sample