android apk互調

package com.example.demo1;

import java.net.URI;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity
{
    private Button btn;
    private Intent intent;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                //
                //                // 確定intent可以被處理,防止軟件崩潰
                //                PackageManager manager = getPackageManager();
                //                List<ResolveInfo> activities = manager.queryIntentActivities(
                //                        intent, 0);
                //                Log.i("info", activities.size() + "");
                //                for (int i = 0; i < activities.size(); i++)
                //                {
                //                    Log.i("info",
                //                            activities.get(i).activityInfo.applicationInfo
                //                                    .loadLabel(manager).toString() + "");
                //                }
                //
                //                //選擇器,強制用戶每次使用都做出選擇
                //                String title = "choose";
                //                // 創建並打開一個選擇器
                //                Intent chooser = Intent.createChooser(intent, title);

                /**
                 * 從一個apk跳轉到另一個apk
                 */
                //1.
                ComponentName name = new ComponentName(
                //這個是另外一個應用程序的包名 
                        "com.tengw.aiyetang",
                        //這個參數是要啓動的Activity 
                        "com.tengw.aiyetang.MainActivity");
                try
                {
                    intent = new Intent();
                    intent.setComponent(name);
                    //這裏可以傳數據
                    Bundle bundle = new Bundle();
                    bundle.putString("string", "");
                    bundle.putSerializable("arr", new String[] { "" });//可以傳數組或對象
                    startActivity(intent);
                }
                catch (Exception e)
                {
                    Toast.makeText(MainActivity.this, "未找到對應apk",
                            Toast.LENGTH_SHORT).show();
                }

                //2.
                //                intent = new Intent("aiyetang");
                //在需要調用的apk的配置文件中的對應activity中添加
                //<intent-filter> 
                //      <action android:name=""/> 
                //      <categoryandroid:name="android.intent.category.DEFAULT"/> 
                //</intent-filter>(cataegory很重要)

                //                startActivity(intent);
            }
        });
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章