2012-04-24 37 views
9

Tôi biết câu hỏi này đã được hỏi rất nhiều ở đây, nhưng chỉ cần tự hỏi kể từ khi ICS đã được phát hành, là có một cách để kích hoạt gps lập trình?ICS Android cho phép lập trình gps?

đang cố bật gps và gửi vị trí của thiết bị đến email, ứng dụng sẽ bắt đầu khi nhận được tin nhắn sms.

Trả lời

9

có cách nào để bật gps theo lập trình không?

Tôi hy vọng không, vì đó sẽ là một lỗ hổng bảo mật. AFAIK, tất cả các lỗ hổng đã biết cho phép phần mềm độc hại bật GPS theo lập trình hiện đã bị đóng.

đang cố gắng để cho phép gps và gửi vị trí của thiết bị để một email

Người dùng điều khiển liệu GPS được kích hoạt hay không.

+0

nếu đó là trường hợp, là có một cách để chạy một chức năng trong nền ngay khi gps đã được kích hoạt? – HeWhoProtects

+1

Vâng, có ['GpsStatus.Listener'] (http://developer.android.com/reference/android/location/GpsStatus.Listener.html) và có ba phương thức trạng thái trong [' LocationListener'] (http://developer.android.com/reference/android/location/LocationListener.html). –

+0

hmm có thể là một cách xung quanh nó ... Tôi sẽ có một cái nhìn, cảm ơn Tháng Mười – HeWhoProtects

4

Như Mark nói, tôi chắc chắn hy vọng không phải vì biến mọi thứ trên đó khỏi muốn dùng chắc chắn là không phải là một điều rất tốt đẹp để làm ;-)

Bạn có thể yêu cầu người dùng làm như vậy tất nhiên (mà bạn có thể đã được tìm thấy, nhưng để tham khảo ở đây là một cách tầm thường để làm điều đó từ bộ nhớ)

LocationManager L = (LocationManager) getSystemService(LOCATION_SERVICE); 

if (!L.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
    Intent I = new Intent( 
       android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
     startActivity(I); 
} 
+1

haha ​​yeah ... nhưng tôi không nghĩ rằng một tên trộm sẽ làm theo hướng dẫn của tôi để kích hoạt gps – HeWhoProtects

+0

@HeWhoProtects Ok để sử dụng Case: Điện thoại Bị đánh cắp, Người dùng gửi SMS, Thief thông minh và tắt GPS nhưng không phải SMS. Kẻ trộm có thể luôn luôn xóa điện thoại của ứng dụng trong trường hợp không nhiều bạn có thể làm. Tôi nghĩ rằng bạn đang đi đúng hướng để vượt qua một tên trộm điển hình có thể là một chút hiểu biết nhưng không quá hiểu biết, chỉ cần để cho một dịch vụ chấp nhận sms, nếu gps là tắt bằng cách sử dụng phương pháp phát hiện sau đó que cho gps ping khi nó trở lại. – Idistic

+0

đó là những gì đang xảy ra với bây giờ, tôi sẽ tìm hiểu cách thực hiện các thông báo đẩy và thay thế sms, không cần phải ở trong tình huống trộm cắp, mất điện thoại hoặc một cái gì đó – HeWhoProtects

3

để yêu cầu người sử dụng để kích hoạt GPS, hãy khám phá link

Dưới đây sẽ là nội tạng của một hàm mà cố gắng để có được loca GPS mới nhất tion theo thứ tự độ chính xác giảm dần. Nếu người dùng không bật GPS, bạn không thể bật tính năng này. Điều tốt nhất bạn có thể làm là lấy vị trí đã biết cuối cùng hoặc nhắc họ bật GPS. Mỗi khi người dùng sử dụng GPS trong một ứng dụng khác và có được một tọa độ mới hoặc kết nối với mạng không dây, vị trí được biết cuối cùng sẽ thay đổi. Tôi cho rằng bạn có thể viết một dịch vụ nền để thăm dò dữ liệu này sau mỗi 5-10 phút và gửi cho bạn. Mặc dù, tôi không đồng ý với hướng bạn dường như đang hướng đến ứng dụng này. lol. Đối với Khoa học!

LocationManager lm = (LocationManager)act.getSystemService(Context.LOCATION_SERVICE); 
Criteria crit = new Criteria(); 
crit.setAccuracy(Criteria.ACCURACY_FINE); String provider = lm.getBestProvider(crit, true); 
Location loc = lm.getLastKnownLocation(provider); 

if(loc){ 
    return loc; 
} 
lm = (LocationManager)act.getSystemService(Context.LOCATION_SERVICE); 
crit = new Criteria(); 
crit.setAccuracy(Criteria.ACCURACY_COARSE); 
provider = lm.getBestProvider(crit, true); 
loc = lm.getLastKnownLocation(provider); 

if(loc){ 
    return loc; 
} 
lm = (LocationManager)act.getSystemService(Context.LOCATION_SERVICE); 
crit = new Criteria(); 
crit.setAccuracy(Criteria.NO_REQUIREMENT); 
provider = lm.getBestProvider(crit, true); 
loc = lm.getLastKnownLocation(provider); 
return null; 
+0

t đồng ý với lol? Tôi vẫn là một noob khi phát triển Android vì vậy xin vui lòng nếu có một cách tốt hơn để làm những điều tôi cởi mở hơn về những lời chỉ trích: D – HeWhoProtects

+0

Cũng từ câu hỏi, có vẻ như bạn có thể đang thực hiện một ứng dụng stalker. Bạn chỉ đang cố gắng sử dụng GPS hay bạn đang cố gắng để thu thập thông tin GPS một cách kín đáo mà không cần người dùng biết? (ví dụ: không sử dụng quyền cho gps) – JustinDanielson

+0

không có người đàn ông ứng dụng của tôi không vì mục đích xấu, đang tạo dịch vụ theo dõi, nơi người dùng mất điện thoại, họ có thể đăng nhập vào trang web của tôi và gửi thông báo đẩy tới điện thoại của họ gửi tín hiệu gps, phát âm báo thức (nếu điện thoại ở chế độ im lặng), v.v. – HeWhoProtects

0

Bạn phải yêu cầu người dùng cho phép:

Intent gpsOptionsIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
      startActivity(gpsOptionsIntent); 
Các vấn đề liên quan