我有什么: 目前我的应用程序通过GPS提供位置.
我想要的是: Gps在我退出应用程序后自动关闭.因为它一直在告诉我一次又一次的位置看起来很奇怪而且gps消耗了很多电池.
从某些 Android 版本(我认为是 2.3.x)开始,无论应用程序具有什么权限,您都无法通过 API 打开/关闭 GPS。过去,可以通过利用电源控制小部件中的错误(请参阅此处)来实现,但现在已修复。
假设我有 root 访问权限,如何打开和关闭 GPS?
编辑:这是您获得读取 jelly bean 日志的权限的方式,普通应用程序不再允许读取日志。我尝试对 WRITE_SECURE_SETTINGS 权限使用类似的解决方案来切换 gps ,但它没有用。
编辑:到目前为止,我只找到了一个有效的解决方案:将应用程序转换为系统应用程序(可以在此处找到一个有效的解决方案,即使在 android 4.2.1 上也可以使用)。但是,我想到的是使用 root 从一开始就绕过它,因为 root 权限可以根据我所知道的做任何事情。
我正在通过网络获取纬度和经度
它给了我纬度和经度,但如果我NETWORK LOCATION PROVIDER的未经检查怎么办
它永远不会为我提供当前位置的纬度和经度。
我想要的是,如何NETWORK LOCATION PROVIDER在不知道用户已打开的情况下启用手机,
我怎样才能做到这一点?
我尝试过的是:
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, 1);
But this will open the page in my phone to check it i want to check AUTOMATICALLY
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.phone", "com.android.phone.Settings");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud) 我想获取Gps纬度和经度,但我有一个查询,每当我尝试拿取没有SIM卡的Lat&Long,它没有提供任何信息,我尽快插入我的SIM卡,它提供了我的所有信息期望的方式.
LocationManager mlocManager =
(LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
0, 0, mlocListener);
Run Code Online (Sandbox Code Playgroud)
你可以看到我使用GPS_PROVIDER,它没有给我Lat&Long没有网络运营商的帮助,任何人都可以打电话给我?
另一件事是如何从应用程序启动和停止GPS意味着我想在特定时间后启动GPS,并且一旦我得到beslocation,我可以将其关闭.
可能重复:以
编程方式启用GPS,如Tasker
是否有可能以编程方式打开/关闭Android上的GPS?在这篇SO帖子中提到:如何在Android上以编程方式启用或禁用GPS?没有用户同意就无法完成.
我已经编写了一个简单的gps代码,它在一些设备(例如moto g)中以编程方式打开和关闭gps,但是一些旧版本或三星二人和其他一些设备没有以编程方式打开gps.请帮我解决这个问题,
如果gps成功打开,我将获得纬度和经度,所以我将使用它
并提前感谢
您必须从Manifest文件中降低API级别
如果您可以在 Firemonkey 项目中启用 GPS 服务,我正在徘徊?位置传感器没有启用它。如果启用了 GPS 或您有网络位置,它只能获取 GPS 坐标。
在其他一些 Android 应用程序中,它会询问您是否要启用 GPS,如果您同意,它将为该应用程序启用 GPS。我也想做这个。
我已经知道如何检查是否为 Android 启用了 GPS 服务,但不知道如何自行启用它。
下面的代码是如何检查是否启用了 GPS:
uses
Androidapi.JNI.Location,
Androidapi.JNIBridge,
FMX.Helpers.Android,
Androidapi.JNI.GraphicsContentViewText;
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
var
locationManager : JLocationManager;
begin
locationManager := TJLocationManager.Wrap( ((SharedActivity.getSystemService(TJContext.JavaClass.LOCATION_SERVICE)) as ILocalObject).GetObjectID);
if locationManager.isProviderEnabled(TJLocationManager.JavaClass.GPS_PROVIDER) then
; //do something
if locationManager.isProviderEnabled(TJLocationManager.JavaClass.NETWORK_PROVIDER) then
; //do something else
end;
Run Code Online (Sandbox Code Playgroud)
如果你用 Java 编程,我也尝试过这样做。喜欢这个链接:https : //stackoverflow.com/a/5305835/2728408
procedure TForm1.Button1Click(Sender: TObject);
{$IFDEF ANDROID}
var
Intent: JIntent;
{$ENDIF}
begin
{$IFDEF ANDROID}
Intent := TJIntent.Create;
Intent.addCategory(TJIntent.JavaClass.CATEGORY_ALTERNATIVE);
Intent.setData(TJnet_Uri.JavaClass.parse(StringToJString('3')));
Intent.setClassName(StringToJString('com.android.settings'), …Run Code Online (Sandbox Code Playgroud) 可能重复:以
编程方式启用GPS,如Tasker
我想知道如何打开代码中的GPS?有人说你不能和别人说你可以,我感到困惑请求帮助我,
我目前正在Android中编写一个与GPS配合使用的应用程序.目前我能够确定GPS是否已启用.我的问题是,如果禁用,我想在应用启动时启用GPS.我怎么能这样做程序化?此外,我想创建打开和关闭GPS的功能,我读取stackoverflow上关于它的所有线程然而我尝试的所有功能我得到"不幸的是你的应用程序必须停止"(我没有忘记添加权限)
有人可以帮助我使用启用或禁用GPS的工作功能吗?
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)
起初,我使用了这些功能:
private void turnGPSOn(){
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(!provider.contains("gps")){ //if gps is disabled
final Intent poke = new Intent();
poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
poke.setData(Uri.parse("3"));
sendBroadcast(poke);
}
}
private void turnGPSOff(){
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(provider.contains("gps")){ //if gps is enabled
final Intent poke = new Intent();
poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
poke.addCategory(Intent.CATEGORY_ALTERNATIVE); …Run Code Online (Sandbox Code Playgroud)