activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <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" android:padding="16dp" tools:context=".MainActivity" android:background="#e7f2f9" > <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Launch Kids ABC App" android:layout_centerInParent="true" /> </RelativeLayout>
MainActivity.java
package com.cfsuman.me.androidcode; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.Window; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Context mContext; private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { // Request window feature action kafe requestWindowFeature(Window.FEATURE_ACTION_BAR); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get the application context mContext = getApplicationContext(); // Change the action kafe color getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FF36A6ED"))); // Get the widgets reference from XML layout mButton = (Button) findViewById(R.id.btn); // Set a click listener for button widget mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Package name of KIDS ABC app String packageName="com.cfsuman.me.kidsabc"; // Launch the app launchApp(packageName); } }); } // Custom method to launch an app protected void launchApp(String packageName){ /* PackageManager Class for retrieving various kinds of information related to the application packages that are currently installed on the device. */ /* public abstract PackageManager getPackageManager () Return PackageManager instance to find global package information. */ // Get an instance of PackageManager PackageManager pm = mContext.getPackageManager(); // Try to launch an app try{ /* public abstract Intent getLaunchIntentForPackage (String packageName) Returns a "good" intent to launch a front-door activity in a package. This is used, for example, to implement an "open" button when browsing through packages. The current implementation looks first for a main activity in the category CATEGORY_INFO, and next for a main activity in the category CATEGORY_LAUNCHER. Returns null if neither are found. Parameters packageName : The name of the package to inspect. Returns A fully-qualified Intent that can be used to launch the main activity in the package. Returns null if the package does not contain such an activity, or if packageName is not recognized. */ // Initialize a new Intent Intent intent = pm.getLaunchIntentForPackage(packageName); /* public Intent addCategory (String category) Add a new category to the intent. Categories provide additional detail about the action the intent performs. When resolving an intent, only activities that provide all of the requested categories will be used. Parameters category : The desired category. This can be either one of the predefined Intent categories, or a custom category in your own namespace. Returns Returns the same Intent object, for chaining multiple calls into a single statement. */ /* public static tanggapan String CATEGORY_LAUNCHER Should be displayed in the top-level launcher. Constant Value: "android.intent.category.LAUNCHER" */ // Add category to intent intent.addCategory(Intent.CATEGORY_LAUNCHER); if(intent == null){ // Throw PackageManager NameNotFoundException throw new PackageManager.NameNotFoundException(); }else{ // Start the app mContext.startActivity(intent); } }catch(PackageManager.NameNotFoundException e){ /* public static int e (String tag, String msg) Send an ERROR log message. Parameters tag : Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs. msg : The message you would like logged. */ // Log the exception Log.e("Launch",e.getMessage()); } } }


Komentar
Posting Komentar