2017-09-07 1 views
8

J'essaie d'ouvrir les paramètres de localisation de Chrome (sur Android) en cliquant sur un bouton en utilisant Android Intents. Je suis l'exemple de Barcode Scanner et essayé d'encoder l'URL de manière similaire. Pour connaître l'emplacement J'ai essayé: -Paramètres de l'emplacement d'ouverture Activité de Chrome sur Android

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

J'ai aussi essayé les paramètres d'ouverture à l'aide de ceci: -

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

ou cette

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

Mais rien ne semble fonctionner. Toute aide est appréciée.

Je l'attache à un bouton en utilisant l'étiquette href.

Répondre

3

Semble vous ne pouvez pas ouvrir Paramètres d'emplacement directement à partir d'Android avec Chrome Intentions car les paramètres Activités ne prennent pas en charge BROWSABLE catégorie (pour plus de détails jeter un oeil à this question de Dickeylth et answer de Rafal Malek). Mais vous pouvez 100% le faire via l'application Android personnalisée et Deep Links à l'activité personnalisée avec le soutien <category android:name="android.intent.category.BROWSABLE"/>, comme dans le tutoriel that.

Dans ce cas, votre application du code SettingsActivity devrait être comme:

public class SettingsActivity extends AppCompatActivity { 

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

} 

et AndroidManifest.xml partie pour 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> 

et, enfin, un lien "profond" pour SettingsActivity dans le fichier HTML:

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

Semble, si vous d ne veut pas installer l'application sur le côté de l'utilisateur, vous pouvez également le faire dans Instant Apps. Détails pour les liens vers l'application instantanée, vous pouvez trouver here.

+0

Eh bien mon cas d'utilisation est pour un formulaire d'enquête/de collecte de données, il n'y a pas d'application impliquée, sur laquelle je pourrais lien profond. De toute façon, en voyant la réponse que vous avez mentionnée, je pense aussi que ce ne sera pas possible. Merci. – deepankar

+0

@deepankar Pour ce cas, vous pouvez utiliser [Instant Apps] (https://developer.android.com/topic/instant-apps/index.html). –

+0

Oui, les applications instantanées semblent être une bonne alternative, mais elles ne fonctionnent que sur Android 6.0 et supérieur. Beaucoup d'appareils tombent dans la catégorie inférieure. – deepankar