Para alguns projetos relativamente grandes, pode haver outras entradas de APP no negócio. Geralmente dividido em dois tipos: 1. O SDK de um amigo está embutido no projeto (o SDK que integra parte do negócio) 2. O SDK do amigo que está desperto (principalmente o aplicativo instalado), vamos falar sobre o despertar hoje.
1. Use Intent para despertar por nome e tipo de pacote:
A classe APP evocada é configurada em manifest.xml:
<activity android: name = ". MyTestActivity1" android: export = "true" > <intent-filter> <action android: name = "android.intent.action.MAIN" /> <action android: name = "android.intent .action.VIEW "/> <category android: name =" android.intent.category.LAUNCHER "/> </intent-filter> </activity>
Início do despertar: com.example.myapplication1 é o nome do pacote, com.example.myapplication1.MyTestActivity1 é o nome do pacote. Nome da classe
Intent intent = novo Intent (); intent.setComponent (new ComponentName ("com.example.myapplication1", "com.example.myapplication1.MyTestActivity1")); intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); startActivity (intenção);
2. Use o Uri para acordar via intent:
<activity android: name = ". TestActivity3" android: export = "true" > <intent-filter> <action android: name = "test.action" /> <category android: name = "android.intent.category.DEFAULT "/> <data android: host =" test.uri.activity " android: scheme =" app "/> </intent-filter> </activity>
comece:
Uri uri = Uri.parse ("app: //test.uri.activity? Id = 1"); Intent intent2 = novo Intent ("test.action"); intent2.setData (uri); startActivity (intenção2);
A página despertada obtém os parâmetros passados por Uri:
if (null! = intenção) { Uri uri = intent.getData (); if (uri == null) { return; } String TAG = "TAG"; if (uri! = null) { // 完整 的 url 信息 String url = uri.toString (); Log.e (TAG, "url:" + url); // esquema 部分 Esquema de strings = uri.getScheme (); Log.e (TAG, "esquema:" + esquema); // host 部分 String host = uri.getHost (); Log.e (TAG, "host:" + host); String data = uri.getQueryParameter ("id"); Toast.makeText (this, data, Toast.LENGTH_SHORT) .show (); } }
3. Desperte a partir do navegador H5:
1. Primeiro escreva um pequeno projeto da web, apenas tenha uma página da web conforme mostrado na figura abaixo e implante-o no tomcat:
Abra este link no navegador:
Devemos abrir este link no navegador do celular, e se parece com este
2. Configuração:
<activity android: name = ". TestActivity4" android: export = "true" > <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: scheme =" app "android: host =" test.my.app "android: pathPrefix =" / caminho "/> </intent-filter> </activity>
Depois que a configuração estiver concluída, clique em "" click me ... "" na página carregada pelo navegador móvel para reativar.
Correspondente a esta página para obter os parâmetros:
String TAG = "TAG"; Uri uri = getIntent (). GetData (); if (uri! = Null ) { // Informações completas do url String url = uri.toString (); Log.e (TAG, "url:" + url); // parte do esquema String scheme = uri.getScheme (); Log.e (TAG, "scheme:" + scheme); // parte do host String host = uri.getHost (); Log.e (TAG, "host:" + host); // parte da porta // int port = uri.getPort (); // Log.e (TAG, "host:" + porta); // Access Road King String path = uri. getPath (); Log.e (TAG, "caminho:"+ caminho); List <String> pathSegments = uri.getPathSegments (); // Parte da consulta String query = uri.getQuery (); Log.e (TAG, "query:" + query); // Obtenha o valor do parâmetro especificado String goodsId = uri . getQueryParameter ("query1"); Log.e (TAG, "query1:" + goodsId)
Nota: 1. esquema, host, caminho estão todos em letras minúsculas
2.scheme não use http ou https