-3

重複の可能性:
ICS Androidはプログラムでgpsを有効にしますか?[別のアプローチを使用してクローズ]

私は以下のコードを使用してGPSをプログラムで有効または無効にし、2.2および2.3で完全に機能しました。

Intent i = new Intent();
i.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 
i.addCategory(Intent.CATEGORY_ALTERNATIVE);
i.setData(Uri.parse("3"));     
context.sendBroadcast(i);

しかし、ICS(4.0)を使おうとすると、機能しないことに気づきました。それから私はそれが以下のリンクとしてバグであることを発見しました。 http://code.google.com/p/android/issues/detail?id=7890

ICSで修正したと思います。

ICSでこれを解決するための代替手段があるかどうか誰かに教えてもらえますか?

OSのばかげた「オープンソース」には非常に多くの制限があると思います。Androidでアプリケーションを開発することを選択したことをすでに後悔し始めています。

4

2 に答える 2

1

GPS の状態をプログラムで変更できないのはセキュリティ機能だと思います。

オープンソースが制限を設けるべきではないことを意味するのはなぜですか? よくわかりません。オープン ソースとは、ソース コードにアクセスできることを意味します。

個人的には、Android 向けの開発は、Cocoa Touch を使用した iOS 向けの開発よりもはるかに苦痛が少ないものでした。

編集:

これを使用して、GPS を有効にする必要があることをユーザーに知らせてください。

(出典: http://manishkpr.webheavens.com/android-syste-gps-setting-intent/ )

private void checkGPS(){
     locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L,1.0f, this);
     boolean isGPS = locationManager.isProviderEnabled (LocationManager.GPS_PROVIDER);
     if(isGPS){
        showToast("Gps On");
     }else{

        startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);
     }
}
于 2012-09-18T14:30:27.440 に答える
0

これらの制限は、セキュリティ上の問題によるものです。現在は機能しているため、このケースを達成しようとするべきではありませんが、今後数日で修正できる可能性があります-たとえば、カスタムROM.

GPS を管理する最善の方法は、Android の GPS 設定を開き、ユーザーが手動で GPS を有効/無効にできるようにすることです。

于 2012-09-18T14:32:04.667 に答える