-3
A
回答
2
GPS真的不能自動被一個Android應用程序打開。它需要用戶的身份驗證才能這樣做。
最好你可以做的是有一個彈出式對話框,要求用戶允許訪問位置服務。
3
,您可以提示用戶打開GPS,如:
private void buildAlertMessageNoGps() {
final AlertDialog.Builder builder = new AlertDialog.Builder(
this.getActivity());
builder.setMessage(R.string.gps_disabled)
.setCancelable(false)
.setTitle(R.string.gps_disabled_title)
.setPositiveButton(R.string.enable,
new DialogInterface.OnClickListener() {
public void onClick(
@SuppressWarnings("unused") final DialogInterface dialog,
@SuppressWarnings("unused") final int id) {
startActivity(new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
})
.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog,
@SuppressWarnings("unused") final int id) {
dialog.cancel();
}
});
final AlertDialog alert = builder.create();
alert.show();
}
1
不是不可能的,也不適合。你不能在沒有他的權力的情況下管理用戶的電話。
從Play商店:
「地獄犬自動啓用GPS,如果當您嘗試 定位設備(僅適用於Android 2.3.3 <),你可以保護它 免受未經授權的卸載它關閉 - 更多信息在應用程序配置中。「
你可以做這樣的事情:
startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
0
完整的解決方案是在這裏。
AndroidManifest.xml中
也許你需要如下因素權限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
MainActivity代碼
public class MainActivity extends AppCompatActivity {
Context context;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//... some code to init Activity and etc...
context = this;
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
boolean statusOfGPS = manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if(!statusOfGPS) // Before show message to turn on GPS be sure it is turned off.
{
buildAlertMessageNoGps();
}
}
private void buildAlertMessageNoGps() {
final AlertDialog.Builder builder = new AlertDialog.Builder(
this.getActivity());
builder.setMessage(R.string.gps_disabled)
.setCancelable(false)
.setTitle(R.string.gps_disabled_title)
.setPositiveButton(R.string.enable,
new DialogInterface.OnClickListener() {
public void onClick(
@SuppressWarnings("unused") final DialogInterface dialog,
@SuppressWarnings("unused") final int id) {
startActivity(new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
})
.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog,
@SuppressWarnings("unused") final int id) {
dialog.cancel();
}
});
final AlertDialog alert = builder.create();
alert.show();
}
相關問題
- 1. 在QT啓動應用程序時打開GPS
- 2. iOS啓動時打開應用程序
- 3. 如何在應用程序啓動時「自動」啓用GPS?
- 4. iPhone:實用程序應用程序 - 在啓動時打開Flipside
- 5. 如何在每次打開應用程序時重新啓動應用程序?
- 6. 在Mac應用程序中啓動應用程序時,XIB未打開
- 7. 啓動GPS應用程序即服務
- 8. 應用程序開始在應用程序啓動時搜索GPS,而不是在需要時
- 9. 在應用程序啓動時打開相機視圖(iOS6)
- 10. iPad在應用程序啓動時打開modalViewController
- 11. 在啓動應用程序時打開網頁瀏覽器
- 12. 在circlePageIndicator中啓動應用程序時打開願望佈局
- 13. 如何在啓動時打開java應用程序或jar?
- 14. 導航抽屜在應用程序啓動時打開
- 15. 在應用程序啓動時創建或打開文檔
- 16. 應用程序在後臺啓動時打開
- 17. 如何在打開應用程序時啓動網頁
- 18. 啓動程序,使其在啓動應用程序的中心打開
- 19. 開發GPS應用程序
- 20. 啓動應用程序在啓動時
- 21. 在啓動時啓動應用程序
- 22. 在啓動時啓動應用程序
- 23. 在應用程序啓動時啓動應用程序類
- 24. 如何在開機時啓動/啓動應用程序Android
- 25. 使用GPS時啓動Android應用程序
- 26. VB.NET打開主exe文件時強制'啓動'應用程序?
- 27. 當其他應用程序打開或啓動時檢測到
- 28. 啓動時重新打開應用程序
- 29. 如何在移動設備打開時在android中啓動應用程序?
- 30. 當應用程序重新打開時啓用啓動屏幕cordova
使用谷歌播放服務,您可以直接從一個對話框,而不是啓用定位服務將用戶發送到設置菜單,請參閱:http:// stackoverfl ow.com/questions/31235564/locationsettingsrequest-dialog-onactivityresult-skipped/31816683#31816683 –
[如何在Android中以編程方式獲取當前GPS位置?](http://stackoverflow.com/questions/1513485/我該怎麼做 - 我當前gps-location-program-in-android) –