国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android判斷GPS是否開啟和強制幫用戶打開GPS

2019-11-06 09:40:07
字體:
來源:轉載
供稿:網友
<div id="article_content" class="article_content"><p>引子:在我們的應用為用戶提供定位服務時,通常想為用戶提供精確點的定位服務,這是需要用戶配合的。我們必須先檢測用戶手機的GPS當前是否打開,若沒打開則彈出對話框提示。用戶若不配合我們也沒辦法,只能采用基站定位方式。如果我們的應用必須用戶打開GPS才可使用,這時流氓一點的做法,就是強制幫用戶打開GPS。</p><p>闡明概念:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;定位服務GPS:全球衛星定位系統,使用24個人造衛星所形成的網絡來三角定位接受器的位置,并提供經緯度坐標。雖然GPS提供絕佳的位置的精確度,但定位的位置需要在可看見人造衛星或軌道所經過的地方。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 定位服務AGPS:輔助全球衛星定位系統(英語:Assisted Global Positioning System,簡稱:AGPS)是一種GPS的運行方式。它可以利用手機基地站的資訊,配合傳統GPS衛星,讓定位的速度更快。用中文來說應該是網絡輔助GPS定位系統。通俗的說AGPS是在以往通過衛星接受定位信號的同時結合移動運營的GSM或者CDMA網絡機站的定位信息,就是一方面由具有AGPS的手機獲取來自衛星的定位信息,而同時也要靠該手機透過中國移動的GPRS網絡下載輔助的定位信息,兩者相結合來完成定位。與傳統GPS(GlobalPositioningSystem全球定位系統)首次定位要2、3分鐘相比AGPS的首次定位時間最快僅需幾秒鐘,同時AGPS也徹底解決了普通GPS設備在室內無法獲取定位信息的缺陷。</p><p>一、檢測用戶手機的GPS當前是否打開,,代碼如下:</p><div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><b>[java]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 721px; top: 859px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_1" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-Flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&amp;width=18&amp;height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-j"><li class="alt"><span><span class="comment">/**</span>&nbsp;</span></li><li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;判斷GPS是否開啟,GPS或者AGPS開啟一個就認為是開啟的</span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;context</span>&nbsp;</span></li><li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;true&nbsp;表示開啟</span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyWord">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">final</span><span>&nbsp;</span><span class="keyword">boolean</span><span>&nbsp;isOPen(</span><span class="keyword">final</span><span>&nbsp;Context&nbsp;context)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LocationManager&nbsp;locationManager&nbsp;&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;(LocationManager)&nbsp;context.getSystemService(Context.LOCATION_SERVICE);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;通過GPS衛星定位,定位級別可以精確到街(通過24顆衛星定位,在室外和空曠的地方定位準確、速度快)</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">boolean</span><span>&nbsp;gps&nbsp;=&nbsp;locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;通過WLAN或移動網絡(3G/2G)確定的位置(也稱作AGPS,輔助GPS定位。主要用于在室內或遮蓋物(建筑群或茂密的深林等)密集的地方定位)</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">boolean</span><span>&nbsp;network&nbsp;=&nbsp;locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(gps&nbsp;||&nbsp;network)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="keyword">true</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="keyword">false</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li></ol><div class="save_code tracking-ad" data-mod="popu_249" style="display: none;"><a href="Javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre class="java" name="code" style="display: none;">/**     * 判斷GPS是否開啟,GPS或者AGPS開啟一個就認為是開啟的     * @param context     * @return true 表示開啟     */    public static final boolean isOPen(final Context context) {        LocationManager locationManager                                  = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);        // 通過GPS衛星定位,定位級別可以精確到街(通過24顆衛星定位,在室外和空曠的地方定位準確、速度快)        boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);        // 通過WLAN或移動網絡(3G/2G)確定的位置(也稱作AGPS,輔助GPS定位。主要用于在室內或遮蓋物(建筑群或茂密的深林等)密集的地方定位)        boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);        if (gps || network) {            return true;        }        return false;    }</pre><p>二、強制幫用戶打開GPS,代碼如下:</p><div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><b>[java]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 721px; top: 1278px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_2" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_2" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&amp;width=18&amp;height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-j"><li class="alt"><span><span class="comment">/**</span>&nbsp;</span></li><li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;強制幫用戶打開GPS</span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;context</span>&nbsp;</span></li><li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">final</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;openGPS(Context&nbsp;context)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;GPSIntent&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;Intent();&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPSIntent.setClassName(<span class="string">"com.android.settings"</span><span>,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"com.android.settings.widget.SettingsAppWidgetProvider"</span><span>);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPSIntent.addCategory(<span class="string">"android.intent.category.ALTERNATIVE"</span><span>);&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPSIntent.setData(Uri.parse(<span class="string">"custom:3"</span><span>));&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">try</span><span>&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PendingIntent.getBroadcast(context,&nbsp;<span class="number">0</span><span>,&nbsp;GPSIntent,&nbsp;</span><span class="number">0</span><span>).send();&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="keyword">catch</span><span>&nbsp;(CanceledException&nbsp;e)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li></ol><div class="save_code tracking-ad" data-mod="popu_249" style="display: none;"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre class="java" name="code" style="display: none;">/**     * 強制幫用戶打開GPS     * @param context     */    public static final void openGPS(Context context) {        Intent GPSIntent = new Intent();        GPSIntent.setClassName("com.android.settings",                "com.android.settings.widget.SettingsAppWidgetProvider");        GPSIntent.addCategory("android.intent.category.ALTERNATIVE");        GPSIntent.setData(Uri.parse("custom:3"));        try {            PendingIntent.getBroadcast(context, 0, GPSIntent, 0).send();        } catch (CanceledException e) {            e.printStackTrace();        }    }</pre><p>三、在AndroidManifest.xml文件里需要添加的權限:</p><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 723px; top: 1661px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_3" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_3" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=3&amp;width=18&amp;height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">uses-permission</span><span>&nbsp;</span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">"android.permission.ACCESS_COARSE_LOCATION"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span><span class="tag">&lt;</span><span class="tag-name">uses-permission</span><span>&nbsp;</span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">"android.permission.ACCESS_FINE_LOCATION"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">uses-permission</span><span>&nbsp;</span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">"android.permission.ACCESS_WIFI_STATE"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span><span class="tag">&lt;</span><span class="tag-name">uses-permission</span><span>&nbsp;</span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">"android.permission.ACCESS_NETWORK_STATE"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">uses-permission</span><span>&nbsp;</span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">"android.permission.CHANGE_WIFI_STATE"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span><span class="tag">&lt;</span><span class="tag-name">uses-permission</span><span>&nbsp;</span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">"android.permission.INTERNET"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249" style="display: none;"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre class="html" name="code" style="display: none;">    &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&gt;    &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;    &lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&gt;    &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;    &lt;uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /&gt;    &lt;uses-permission android:name="android.permission.INTERNET" /&gt;</pre>   </div>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东城区| 安达市| 嵊州市| 类乌齐县| 中卫市| 元江| 刚察县| 邵阳市| 岳阳市| 台湾省| 巴彦淖尔市| 长寿区| 昭觉县| 徐汇区| 花莲市| 来凤县| 临湘市| 凤山县| 噶尔县| 上虞市| 绥芬河市| 休宁县| 鄂州市| 永胜县| 清远市| 沅江市| 应城市| 高邑县| 霍州市| 屏东县| 江津市| 东至县| 汾阳市| 南平市| 郁南县| 平武县| 开江县| 五寨县| 淮安市| 茌平县| 乌兰察布市|