Para algunos proyectos relativamente grandes, puede haber otras entradas de aplicaciones en el negocio. Generalmente se divide en dos tipos: 1. El SDK de un amigo está incrustado en el proyecto (el SDK que integra parte del negocio) 2. El SDK del amigo que se despierta (principalmente la aplicación instalada), hablemos de despertar hoy dia.
1. Utilice Intent para despertar por nombre y tipo de paquete:
La clase de aplicación evocada se configura en manifest.xml:
<actividad android: name = ". MyTestActivity1" android: exported = "true" > <intent-filter> <action android: name = "android.intent.action.MAIN" /> <action android: name = "android.intent .action.VIEW "/> <categoría android: name =" android.intent.category.LAUNCHER "/> </intent-filter> </activity>
Inicio del despertador: com.example.myapplication1 es el nombre del paquete, com.example.myapplication1.MyTestActivity1 es el nombre del paquete. Nombre de la clase
Intención Intención = nueva Intención (); intent.setComponent (new ComponentName ("com.example.myapplication1", "com.example.myapplication1.MyTestActivity1")); intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); startActivity (intención);
2. Use Uri para despertar a través de la intención:
<actividad android: name = ". TestActivity3" android: exported = "true" > <intent-filter> <action android: name = "test.action" /> <categoría android: name = "android.intent.category.DEFAULT "/> <data android: host =" test.uri.activity " android: esquema =" aplicación "/> </intent-filter> </activity>
puesta en marcha:
Uri uri = Uri.parse ("aplicación: //test.uri.activity? Id = 1"); Intención intent2 = nueva Intención ("test.action"); intent2.setData (uri); startActivity (intent2);
La página despierta obtiene los parámetros pasados por Uri:
if (nulo! = intento) { 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 部分 String esquema = uri.getScheme (); Log.e (TAG, "esquema:" + esquema); // host 部分 String host = uri.getHost (); Log.e (TAG, "host:" + host); String data = uri.getQueryParameter ("id"); Toast.makeText (esto, datos, Toast.LENGTH_SHORT) .show (); } }
3. Despertar desde el navegador web H5:
1. Primero escriba un pequeño proyecto web, solo tenga una página web como se muestra en la siguiente figura e impleméntela en tomcat:
Abrir este enlace en el navegador es:
Debemos abrir este enlace en el navegador del teléfono móvil, y tiene este aspecto
2. Configuración:
<actividad android: name = ". TestActivity4" android: exported = "true" > <intent-filter> <action android: name = "android.intent.action.VIEW" /> <categoría android: name = "android.intent .category.DEFAULT "/> <categoría android: name =" android.intent.category.BROWSABLE "/> <datos android: esquema =" app "android: host =" test.my.app "android: pathPrefix =" / ruta "/> </intent-filter> </activity>
Una vez completada la configuración, haga clic en "" haga clic en mí ... "" en la página cargada por el navegador móvil para activar.
Correspondiente a esta página para obtener parámetros:
String TAG = "TAG"; Uri uri = getIntent (). GetData (); if (uri! = Null) { // Información completa de la URL String url = uri.toString (); Log.e (TAG, "url:" + url); // parte del esquema String esquema = uri.getScheme (); Log.e (TAG, "esquema:" + esquema); // parte del host String host = uri.getHost (); Log.e (TAG, "host:" + host); // parte del puerto // int port = uri.getPort (); // Log.e (TAG, "host:" + puerto); // Access Road King String path = uri. getPath (); Log.e (TAG, "ruta:"+ ruta); List <String> pathSegments = uri.getPathSegments (); // Parte de la consulta String query = uri.getQuery (); Log.e (TAG, "query:" + query); // Obtiene el valor del parámetro especificado String goodsId = uri . getQueryParameter ("consulta1"); Log.e (TAG, "consulta1:" + GoodsId)
Nota: 1. el esquema, el host y la ruta están todos en minúsculas
2.El esquema no usa http o https