1. 程式人生 > >APP首次啟動提示開啟定位服務

APP首次啟動提示開啟定位服務

最近在專案中有用到位置,以前都是在進入需要位置資訊的地方才去讓使用者開啟定位,或者是在使用者安裝APP的時候就讓使用者給APP賦予讀取位置的許可權,但是現在想要使用者在安裝完App第一次啟動的時候才去詢問使用者是否開啟定位。

1.首先控制在第一次啟動APP才會彈出,我們可以使用SharedPreferences

public class CurrApplication extends BaseApplication{
    public boolean isPopUpGPSTip;
 //Leak Canary detect leak
// private RefWatcher mRefWatcher;
 public static CurrApplication getInstance() {
  return instance;
 }
    
    @Override
 public void onCreate() {
  // TODO Auto-generated method stub
  super.onCreate();
  instance = this;
                firstPopUpGPSTipInit();
      }
    private void firstPopUpGPSTipInit() {
  SharedPreferences shared = getSharedPreferences("shared", MODE_PRIVATE);
  isPopUpGPSTip = shared.getBoolean("isGPSTip", true);
 }
}

這裡如果是第一次登陸,SharedPreferences不會有存資料,此時isPopUpGPSTip為true.

2.在MainActivity去判斷是否要彈出彈框提示

/**
	 * 第一次進入的要提示GPS定位
	 */
	private void needGPSTips(){
		SharedPreferences shared = getSharedPreferences("shared", MODE_PRIVATE);
		SharedPreferences.Editor editor = shared.edit();
		if (CurrApplication.getInstance().isPopUpGPSTip) {
			//第一次進入跳轉  
			editor.putBoolean("isGPSTip", false);
			editor.commit();
			openGPSSettings();
		}
	}

/**
	 * 跳轉GPS設定
	 */
	private void openGPSSettings() {
		if (!checkGPSIsOpen()) {
			//沒有開啟則彈出對話方塊
			new AlertDialog.Builder(this)
					.setTitle(R.string.notifyTitle)
					.setMessage(R.string.gpsNotifyMsg)
					// 拒絕, 退出應用
					.setNegativeButton(R.string.cancel,
							new DialogInterface.OnClickListener() {
								@Override
								public void onClick(DialogInterface dialog, int which) {

								}
							})

					.setPositiveButton(R.string.setting,
							new DialogInterface.OnClickListener() {
								@Override
								public void onClick(DialogInterface dialog, int which) {
									//跳轉GPS設定介面
									Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
									startActivityForResult(intent, GPS_REQUEST_CODE);
								}
							})

					.setCancelable(false)
					.show();

		}
	}

	/**
	 * 檢測GPS是否開啟
	 *
	 * @return
	 */
	private boolean checkGPSIsOpen() {
		boolean isOpen;
		LocationManager locationManager = (LocationManager) this
				.getSystemService(Context.LOCATION_SERVICE);
		isOpen = locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER);
		return isOpen;
	}

如果使用者已經是開啟狀態,那我們就不彈提示,如果不是,那就彈提示,最後的效果圖如下:


相關推薦

APP首次啟動提示開啟定位服務

最近在專案中有用到位置,以前都是在進入需要位置資訊的地方才去讓使用者開啟定位,或者是在使用者安裝APP的時候就讓使用者給APP賦予讀取位置的許可權,但是現在想要使用者在安裝完App第一次啟動的時候才去詢問使用者是否開啟定位。 1.首先控制在第一次啟動APP才會彈出,我們可

apicloud實現APP首次下載安裝開啟的引導頁面

引導頁由 guide_win.html 和 guide_frm.html 兩部分組成。      第一部分:guide_win.html apiready = function() {  api.p

/etc/rc.d/rc.local linux啟動自動開啟某些服務

/etc/rc.d/rc.local似乎是很多Linux系統管理員的偏愛,因為凡是需要隨系統自動啟動的服務、程式等,只要系統沒有提供Sys V風格的啟動指令碼,就把這些需求都塞到/etc/rc.d/rc.local。 當然,絕大部分情況下,你會發現這一切都工作得很正常,看上

APP首次啟動引導介面和啟動介面設定——iOS開發

APP下載安裝第一次使用一般會顯示一個首次啟動引導介面然後進入主介面,非首次開啟APP也通常會顯示一個啟動介面然後進入主介面。 1、本例首次啟動顯示FirstUseViewController,新增一個button,點選進入LaunchViewController  2、非首次LaunchViewCon

Hbuilder打包的vue cli app獲取高德地圖定位服務key的問題[解決]

Hubilder打包的vue cli app獲取高德地圖定位服務key時出現的問題,導致定位出錯,無法獲取位置資訊,以下是解決方法:解決步驟:1.開始申請高德定位的key,可填寫到 manifest.j

解決iOS首次啟動app時,定位提示彈出框閃一下消失的情況。

這幾天由於專案整個框架大修改,遇到一個問題: 在真機上反覆測試時,發現系統定位的授權提示框出現的時間有問題,並不是像我們期望的那樣,當進入程式內部才彈出來,它出現的情況分以下幾種: 進入app內部,彈出允許定位提示框(正常情況); 未進入app,彈出提示框(

Visual Studio提示“無法啟動IIS Express Web服務器”的解決方法

打開 enter 現在 htm 文件 項目 服務 asp.net 提示 Visual Studio提示“無法啟動IIS Express Web服務器”的解決方法   有時,在使用Visual Studio運行ASP.NET項目時,會提示&ldquo

ios9定位服務app進入後臺三分鐘收不到經緯度,應用被掛起問題及解決方式

sso 進入 ont use -c 大於 null 方案 cti 原來定位服務是10分鐘收不到定位信息就掛起定位,如今變為最短3分鐘,預計都是為了省電吧。僅僅要你開啟應用的後臺定位,而且10分鐘有一次定位,那麽蘋果就不會關閉你的線程。如今變成3分鐘。若你

用命令方式啟動、停止appium服務app

conf from 改名 設備 nor 啟動命令 服務啟動 logger man 啟動appium服務並監聽一個端口命令: 命令command==>  appium -a {ip} -p {port} -U {deviceName} -g {log} 以shell命令

VS提示-無法啟動IIS Express Web服務器-的解決方法

文件 重新 無法啟動 bsp http image tro ron mage 今天在svn上檢出項目,生成時候沒有報錯,運行的時候報-無法啟動IIS Express Web服務器-(如下圖),在網上搜了幾種方法,最終解決掉的方法是: 簡單粗暴的解決方法: 找到項目的文

iOS AppDelegate 代理詳解(啟動開啟App,推送,通知)

//App將要啟動 - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(nullable NSDictionary *)launchOptions{ return YES;

Ionic更新APP後通過fileOpener開啟安裝完成後沒有提示視窗(開啟或完成)

Ionic更新APP後通過fileOpener開啟安裝完成後,沒有提示視窗(開啟或完成),比如你下載一個APP安裝成功後會給你一個反饋結果介面,接著你是要直接開啟APP呢就點選(開啟),你要是不想開啟呢就點選(完成),等你下次想用的時候開啟就行,就是這麼個反饋視窗。 處理方法: 找到plat

如何解決 Mongodb後在cmd下無法啟動,提示:服務名無效,發生系統錯誤2 系統找不到指定的檔案

1.電腦是64位,作業系統win0 2.下載的是mongodb3.4版本 3.安裝包直接安裝, 預設安裝在c:\program files\mongoDB, 手工建立目錄c:\program files\mongodb\service\3.4\data\db 4.安裝完成,新增路

Android6.0系統的framework層中加入自己的共享庫服務,在系統預編譯之後,系統啟動提示找不到類的問題

共享庫服務我們取名為myserver 系統預編譯(預優化):目的是加快系統的啟動時間,如下設定: device\atc\evb3561sv_w_no2\BoardConfig.mk ### add by zhaojr for odex # Enable dex-preop

VS提示“無法啟動IIS Express Web服務器”的解決方法

重新 div .com expr 方法 studio cmd and tar 有時在使用Visual Studio運行項目時,會提示“無法啟動IIS Express Web服務器”,如圖: 可以依次嘗試以下方法(我的情況使用第一種就解決了): 1、可能原因:誤操作執行了

解決Android首次啟動APP時,顯示空白頁或者黑屏時間長的問題

問題描述: 第一次啟動app(冷啟動,如果不明白冷啟動和熱啟動的話,可以百度一下),會出現白屏或者黑屏,而且當代碼量增多的時候,出現的時間很長。這樣的使用者體驗多不好。下面我寫了一個小例子,先模擬一下該問題的效果圖,以及解決問題後的效果圖。處理前有空白頁如圖1,

微信開發工具啟動提示無法定位程式輸入點ReleaseSRWLockExclusive於動態連結庫kernel32.dll 上

微信開發工具啟動時提示:無法定位程式輸入點ReleaseSRWLockExclusive於動態連結庫kernel32.dll上原因:微信開發工具不支援Windows XP系統,只支援Win7以上的系統附

開啟mysql服務提示服務名無效的解決方案

—開始。執行CMD命令 Microsoft Windows 版本 6.1.6601 版權所有 1985-2003Microsoft Corp. —–執行cd ../../到C盤根目錄C:\Documents and Settings\Administrato

IOS控制元件之ScrollView,PageControl---APP首次開啟引導頁面效果實現~

前言: 最近學了下UIScrollView的用法,然後自己實現了一個常見的APP首次開啟的引導頁面效果,效果圖如下: 主要就是一個滑動頁面的效果,在最後一頁上有一個立即體驗的按鈕,點選按鈕會跳轉到APP主頁面。 主

首次啟動APP的新功能指引蒙板的使用

一般來說很多APP在第一次安裝啟動後都會有個新手引導的過程,不過每家採用的方式不同。最近做到這塊內容我就不再造輪子【其實是自己造不出來…】找到一個比較美觀的新手引導層框架。 TourGuide介紹 一個關於新手引導層的框架,介面較為美觀,自定義屬性也