ก็ยังคงอยู่ที่เรื่อง Intent เหมือนเคย คราวนี้ต่อกันด้วยการดูแผนที่ โดยไม่ต้องเขียนให้โปรแกรมเรียกใช้งาน Google Maps แต่อย่างใด เหมาะกับแอพที่ไม่ได้ต้องการใช้งาน Google Maps มากนัก
ไม่ขออธิบายอะไรมากละกัน เพราะโค๊ดนั้นแสนง่ายและสั้น
Uri uri = Uri.parse("geo:13.7309018.100.5411672?z=18");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(Intent.createChooser(intent, "View map with"));
สำหรับ 13.7309018 ก็คือละติจูดและ 100.5411672 ก็คือลองจิจูดที่ต้องการให้เวลาที่เปิดแอพ แผนที่แล้ว จะเลื่อนไปที่ตำแหน่งนั้นทันที และ z=18 ก็คือระดับของการซูม โดยจะให้ซูมไปที่ระดับ 18 (ซูมใกล้)
Intent intent = new Intent();
intent.setClassName("com.google.earth", "com.google.earth.EarthActivity");
intent.setAction(Intent.ACTION_SEARCH);
intent.putExtra(SearchManager.QUERY, "13.7375018,100.5651672");
startActivity(intent);
สำหรับโค๊ดตัวอย่างในบทความนี้ก็จะไม่มีอะไรมาก มี Button หนึ่งตัว เมื่อกดแล้วก็จะแสดงรายชื่อแอพที่รองรับการใช้งานแผนที่ พอเลือกแอพนั้นๆ ก็จะเปิดขึ้นมาแล้วเลื่อนไปยังตำแหน่งที่กำหนด
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/buttonIntent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="View Map" />
</RelativeLayout>
Main.java
package app.akexorcist.intentviewmap;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Main extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonIntent = (Button)findViewById(R.id.buttonIntent);
buttonIntent.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Uri uri = Uri.parse("geo:13.7309018,100.5411672?z=18");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(Intent.createChooser(intent
, "View map with"));
}
});
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.akexorcist.intentviewmap"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="app.akexorcist.intentviewmap.Main"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
สำหรับผู้ที่หลงเข้ามาอ่านผู้ใดที่ต้องการดาวน์โหลดไฟล์ตัวอย่างสามารถดาวน์โหลดได้จาก Intent View Map [Google Drive]
บทความที่เกี่ยวข้อง
การใช้ Intent สำหรับแชร์ข้อความ String [Send]
การใช้ Intent สำหรับแชร์ข้อความสำหรับ Email [Send]
การใช้ Intent เพื่อเปิด URL [View]
การใช้ Intent เพื่อเปิดแผนที่ [View]
การใช้ Intent เพื่อเปิดไฟล์ใดๆ [View]
การเรียกเปิดแอพฯอื่นๆ ด้วย Intent
การใช้ Intent สำหรับแชร์ไฟล์ใดๆ [Send]
การเลือกไฟล์ภาพจาก Gallery ด้วย Intent [Result]
การใช้งานกล้องเพื่อถ่ายภาพแบบง่ายๆด้วย Intent [Result]
การใช้งานกล้องเพื่อบันทึกวีดีโอแบบง่ายๆด้วย Intent [Result]
การอ่าน QR Code และ Barcode ด้วย Intent [Result]
การรับข้อมูล Intent จากแอพฯอื่นๆ [Get Content]
การรับข้อมูล Intent จากแอพฯอื่นแล้วส่งข้อมูลกลับไป [Result Content]