2017-09-07 83 views
8

我試圖使用Android Intents在Chrome上打開位置設置(在Android上)。我遵循條碼掃描器的例子,並嘗試編碼類似的方式。 對於位置我已經試過這樣: -在Android上從Chrome上打開位置設置活動

const uri = "intent://com.google.android.gms.location.settings.GOOGLE_LOCATION_SETTINGS#Intent;action=com.google.android.gms.location.settings.GOOGLE_LOCATION_SETTINGS;end" 

我也嘗試使用這個打開的設置: -

const uri = "intent://ACTION_SETTINGS#Intent;action=android.provider.Settings.ACTION_SETTINGS;end" 

或本

const uri = "intent://android.provider.Settings.ACTION_SETTINGS#Intent;action=android.provider.Settings.ACTION_SETTINGS;end" 

但似乎沒有任何工作。任何幫助表示讚賞。

我將它附加到使用href標記的按鈕上。

回答

3

好像你不能從Chrome瀏覽器Android的意圖直接打開位置設置,因爲設置活動不支持BROWSABLE類別(詳情看一看的Dickeylththis問題和Rafal Malekanswer)。但你可以100%通過自定義android應用程序和Deep Links來自定義Activity,支持<category android:name="android.intent.category.BROWSABLE"/>,如that教程。

在這種情況下,你的應用程序SettingsActivity代碼應該是這樣的:

public class SettingsActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0); 
    } 

} 

AndroidManifest.xml一部分SettingsActivity

<activity android:name=".SettingsActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW"/> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE"/> 
     <data 
      android:host="open.location.settings" 
      android:scheme="http"/> 
    </intent-filter> 

</activity> 

,最後,在HTML文件中 「深」 鏈接SettingsActivity

<a href="http://open.location.settings">Open Location Settings</a> 

似乎,如果你d不想在用戶端安裝應用程序,您也可以在Instant Apps中執行此操作。有關Instant App的鏈接的詳細信息,您可以找到here

+0

那麼我的使用案例是針對一些調查/數據收集的形式,沒有涉及的應用程序,我可以深入鏈接。無論如何,看到你提到的答案,我也認爲這是不可能的。謝謝。 – deepankar

+0

@deepankar對於這種情況,您可以使用[Instant Apps](https://developer.android.com/topic/instant-apps/index.html)。 –

+0

是的即時應用似乎是不錯的選擇,但他們只適用於Android 6.0及以上版本。很多設備屬於較低類別。 – deepankar