(Nexus S에서 4.1.1 JellyBean 사용) these instructions을 따르려고하지만 어떤 활동이 제한적일 수 있습니까? setNdefPushMessage()
은 다소 모호합니다. 를 통해 HTTP 요청을 처리하기위한 활동이 현재 내 앱 :setNdefPushMessage()를 사용하는 방법
<activity android:name=".HandleUrlActivity"
android:label="@string/title_handle_url_message" >
<intent-filter>
<action android:name="android.intent.action.VIEW"/
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
</intent-filter>
</activity>
충돌과 :
setNdefPushMessage()가 HandleUrlActivity 내에서 호출되는java.lang.IllegalStateException: API cannot be called while activity is paused
().
어떤 활동에서 setNdefPushMessage()를 사용할 수 있습니까? 또는 Ndef가 제공 될 때까지 활동을 계속 실행하는 방법과 그 활동이 언제 반환/종료 할 수 있는지 어떻게 알 수 있습니까? 전화 :
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
nfcAdapter.setNdefPushMessage(ndef, this);
nfcAdapter.wait();
함께 또는 대기없이 위의 오류를 제공합니다. 분명히 setNdefPushMessage()
은 wait-for-nable-capable-capable-device-proximity를 처리하고 이벤트를 전송하기위한 몇 가지 지원 메커니즘이 필요하며 모든 것이 완료 될 때까지 차단할 것으로 예상했지만 분명히 그렇지 않습니다.
(enableForegroundNdefPush/disableForegroundNdefPush
분명히이 문제를 해결하지만, setNdefPushMessage
는이 모든 것을 처리하는 주장과 ICS/JB 위해 사용되지 않습니다 보인다 ...)
지금은 단순히 URL을 원격 장치에 "푸시"하려고합니다. 호환되는 대상 장치가 가까이 올 때까지 화면을 "차단"해야합니다. NFC 시스템은이 작업이 완료 될 때까지 다른 NFC 작업을 잠그는 것을 알아야합니다. 목적지 장치가 근접에서 _removed_ 될 때까지 뭔가를이 스테이 시스를 만들 필요가 있습니다. 따라서 어떤 종류의 "정상적인 상태로 돌아 가기"기능이 뒤 따르는 대기 기간입니다. (btw, 사용자가 URL을 선택하거나 다른 브라우저 시작 이벤트를 선택하면 http VIEW 의도가 발생 함) – duanev
"NFC 시스템"을 제어 할 수 없기 때문에이 작업을 수행 할 수 없습니다. 당신은 inents에 등록 할 수만 있고 밀어 넣을 NDEF 메시지를 지정할 수 있습니다. –
질문은 나의 예제가 장점이 있는지 여부에 관계없이 유효합니다. 나는 나의 요점을 다소 더 명확히 할 것이다. 전경 앱이 현재 NFC 작업을 제어합니다 (기본값은 앱 URI를 전송하는 것입니다). 내가 언급 한 문서는 setNdefPushMessage가이 "잠금"을 기본값보다 우선시한다고 말합니다 - 나는 인정하지만, 의미는 여전히 분명합니다. 따라서 setNdefPushMessage()를 차단할 필요는 없지만 분명히 앱에서 적어도 하나의 활동을 일시 중지하지 않도록 (그리고 내 ndef 메시지가 전송 될 때까지 파괴되지 않도록)해야합니다. – duanev