2011-12-06 4 views
1

개인 API를 사용하지 않고 네트워크 환경 설정 패널에서 "위치"값을 프로그래밍 방식으로 설정하는 방법이 있습니까?개인 API를 사용하지 않고 네트워크 기본 설정 창에서 "위치"값 설정

Mac App Store에서 허용하는 방식으로이 작업을 수행해야합니다.

+0

이 서비스는 어떤 용도로 사용됩니까? 나는 갑자기 그들의 위치가 알려지지 않고 변경되면 사용자가 너무 행복해 할 것이라고 생각하지 않는다. –

+0

고객이 해당 기능을 원합니다. 그림을 이동. – cfischer

답변

2

가 AFAIK 신뢰성이 달성 할 수없는 라이브러리 함수 없다,하지만 당신은 networksetup 도구를 실행할 수 있습니다 :

/usr/sbin/networksetup -switchtolocation $LOCATION 

아아를, 나는 이것이 MAS 응용 프로그램에 허용되는 경우 확실하지 않다. 확실히 알기위한 유일한 방법은 항상 노력하는 것입니다.

2

사실, 공개 &입니다. 원하는 API를 사용할 수 있습니다.

System Configuration framework을 살펴보십시오. 새로운 위치를 설정하는 내 자신의 코드에서 사용하는 실제 호출은 (내 사용자가 일어나고 있다는 것을 완전히 알고있는 상태에서) SCNetworkSetSetCurrent입니다. 샌드 박스 응용 프로그램에서이 일을

번호 1) @gcbrueckmann 말한대로 (그래서 말에 그를 위해 일) : 말했다

는 두 개의 당신이 당신의 자신의 코드에서이 작업을 수행 할 수없는 이유있다 Mac App Store에서 판매하는 것은 확실합니다.

숫자 2) 시스템 수준 설정을 수정하는 시스템 구성 설정을 망칠 경우 권한이있는 (즉, 관리자 또는 루트로 실행) 도구 또는 앱에서 수행해야합니다.

+1

제 경험상,'SCNetworkSetSetCurrent()'는 예상대로 작동하지 않습니다 (지적한 것처럼 루트 권한이 필요합니다). 그러나 'networksetup'도구 방법은 그렇지 않습니다. (관리자 권한이 필요하다고 문서화되어 있습니다.) – gcbrueckmann

0

scselect가 작동하며 관리자 권한이 필요하지 않습니다.

scselect $LOCATION 

하지만 샌드 박스에서 사용하지 못할 수 있습니다.

또한 AppleScript로 변경할 수도 있지만 다시 샌드 박스에서 문제가 발생할 수 있습니다.