Mark Murphy의 훌륭한 Commonsware 서적을 사용하고 있습니다. 나는 'FakePlayer'앱 (mp3 플레이어 인 척)을 만들었습니다. 여기에는 서비스가 포함되어 있습니다. 서비스를 확인 시작 - 그것은 잘 작동허가없이 서비스 의도를 시작할 수 없음 - 보낸 사람이 사용 권한을 얻지 못함
Intent i = new Intent();
i.setAction("com.example.cwfakeplayer.MyPlayerService");
Context context = getApplicationContext();
context.startService(i);
가 : 학습 경험으로 나는 누구의 클릭 핸들러 않는 사소한 응용 프로그램을 (만 버튼이) 작성했습니다. 나는 이클립스는 서비스에 아무런 권한에 대해 불평 발견, 그래서 나는 2 선, 안드로이드 추가하여 서비스의 매니페스트를 업데이트 : 권한 및 안드로이드 : 수출 : 나는 장치에 플레이어 응용 프로그램을 다시로드
<service
android:name="MyPlayerService"
android:permission="com.example.fakeplayer.permission.MY_PLAYER_PERMISSION"
android:exported="true"
<intent-filter>
<action android:name="com.example.fakeplayer.MyPlayerService"></action>
</intent-filter>
</service>
(내가 사용을 갤럭시 S2)를 사용하여 '디버그'를 이클립스합니다. 그것은 일하는 것처럼 보였다. 시동기 응용 프로그램이 내가 예상 한 허가 예외를 일으켰습니다.
그때 스타터 응용 프로그램의 매니페스트에 추가
(그것에게 권한을 부여하기 위해) :
<manifest
...
<uses-sdk ....
....
<uses-permission android:name="com.example.fakeplayer.permission.MY_PLAYER_PERMISSION" />
나는 (이클립스에서 디버깅을 사용) 장치에 스타터 응용 프로그램을 다시로드. 아직 시작 응용 프로그램에서 권한 오류가 발생합니다.
기기에서 앱을 모두 제거하고 다시 디버그 ...를 사용하여 서비스 앱을 시작한 다음 다시 시작합니다. 여전히 퍼머 오류가 발생합니다.
Murphy 씨의 고급 Android 책의 '원격 서비스 사용 방법'을 통해 진행 중이므로 앱에서 작동하는 가장 좋은 방법은 아닌 것을 깨달았습니다.
시동기 응용 프로그램에있는 'adb 셸 dumpsys 패키지'를 실행했는데 'permissionsFixed = false'및 'grantedPermissions'섹션이 없음을 발견했습니다. 필자는이 점을 고려하여 시작 앱의 변경 사항이 앱에 추가 된 파마를 관리하지 못했다는 의미입니다. 그러나 나는 이유를 모른다. 학습 경험으로서, 지금까지만 혼란이 발생했습니다 ....
모든 단서를 매우 높이 평가! 감사!
처음에는을 포함하는 데 도움이됩니다. 대답과 우수 도서 및 예제 코드에 감사드립니다. 을 사용하는 Android 북에서 예제 코드를 볼 수 없었으므로이 책을 간과했습니다. (이 장을 읽으면서 - 그러나 나는 '코드 중심'입니다.) –
@ArtSwri : 글쎄, 당신이 분명히 읽고있는 책 ("고급 안드로이드")은 1 년 전에 그 책의 내용이 [내 주요 책] (http://commonsware.com)으로 접혀서 은퇴했다. ''요소를 플러그인 예에서 사용합니다 : https://github.com/commonsguy/cw-omnibus/tree/master/RemoteViews 그 말은 고마워요! –
CommonsWare
와우, 그쪽으로 멀어져있어. n 내 생각에 - 구독 정보가 없어졌습니다. 갱신을 위해 지금 남겨주세요 ... –