内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

在一個a.apk中打開另一個b.apk,坑爹的是這b.apk沒有入口配置

這次工作中很坑爹地遇到了一個問題:

成都創(chuàng)新互聯(lián)公司總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷策劃、網(wǎng)頁設(shè)計、網(wǎng)站維護、公眾號搭建、重慶小程序開發(fā)、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動行銷領(lǐng)域創(chuàng)造價值而不懈努力!

在一個a.apk中打開另一個b.apk,坑爹的是這b.apk沒有入口配置(注:在manifest中沒有配置入口activity,即:缺少 <intent-filter>

               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />

           </intent-filter>,如果沒有這個配置,手機安裝上該應(yīng)用了,當(dāng)無法找到相應(yīng)的應(yīng)用圖標(biāo),但通過設(shè)置里面的已下載應(yīng)用

           中顯示它確實已經(jīng)安裝在你的手機上了)。給出的條件:知道這b.apk的包名。

以上就是所有的問題內(nèi)容了。

思路:

1. 將b.apk放在a的project中的assets目錄下,將b.apk復(fù)制到sd卡中。

2. 解壓安裝b.apk。

3. 打開b.apk。

需解決的問題已經(jīng)解決方法:

1.如何如何將b.apk通過程序的方式復(fù)制到sd卡。

參數(shù):context:對應(yīng)activity的上下文;

fileName:b.apk;

path:sd卡存儲路徑,帶b.apk;

所需權(quán)限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

返回:true:copy成功

false:copy失敗

public boolean copyApkFromAssets(Context context, String fileName,

String path) {

boolean copyIsOK = false;

try {

InputStream is = context.getAssets().open(fileName);

File file = new File(path);

Boolean isExists = file.exists();

if (!isExists) {

file.getParentFile().mkdir();

file.createNewFile();

}

FileOutputStream fos = new FileOutputStream(file);

byte[] temp = new byte[1024];

int i = 0;

while ((i = is.read(temp)) > 0) {

fos.write(temp, 0, i);

}

fos.close();

is.close();

copyIsOK = true;

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return copyIsOK;

}

2.如何通過程序的方式解壓安裝b.apk。

參數(shù):PATH_APK:保存在sd的b.apk對應(yīng)的路徑,帶b.apk

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setDataAndType(Uri.parse("file://"+PATH_APK),"application/vnd.android.package-archive");

MainActivity.this.startActivity(intent);

3.如何在a.apk中打開b.apk。

我覺得這是整的的一個流程中最重要的問題,我們都知道,想要進入一個android應(yīng)用的時候,

都必須要有一個入口的配置activity,應(yīng)用在打開啟動的時候會先掃描manifest文件,只有當(dāng)

在里面找到入口配置(含<action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />的activity)的時候

   才能啟動第一個界面。網(wǎng)上查了一些資料,有好多是知道這個b.apk的包名,同時呢,b.apk的入口配置都是有的。

   這個的話會很好辦:

   參數(shù):**.**.**  :  b.apk的包名

     Intent intent = new Intent();

intent = manager.getLaunchIntentForPackage("**.**.**");

if(intent != null){

MainActivity.this.startActivity(intent);

}  

但是!當(dāng)使用這個方法來進入沒有入口配置的應(yīng)用的時候,不會有任何反應(yīng)。

我們現(xiàn)在要解決的是沒有入口配置的!

思路:雖然沒有入口配置,但要是我們直接打開這個首界面的activity,是不是說也能行呢?

需要解決的問題和方法:

  1> 如何知道b.apk的首界面activity

有一種牛逼的軟件叫:反編譯軟件  就是能通過得到的.apk獲取到對應(yīng)的源文件,當(dāng)然由于被添加標(biāo)簽等加密后,

這源文件反編譯過來會出現(xiàn)好多的錯誤,但是,manifest文件的正常的!在里面,你就能找到啦!

  2> 如何在a.apk中打開b.apk中的mainAvtivity,條件:知道b.apk的包名,mainActivity的包名

參數(shù):  **.**.**:b.apk的包名

**.**.**.activity.MainActivity:MainActivity的全名(加有包名)

Intent mIntent = new Intent( );

mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

       ComponentName comp = new ComponentName("**.**.**", "**.**.**.activity.MainActivity");  

       mIntent.setComponent(comp);  

       mIntent.setAction("android.intent.action.VIEW");  

       startActivity(mIntent);  

    ok!搞定      

    ps:要是不知道b.apk的包名的話,可以搜索安裝在手機上的應(yīng)用的包名來找到:

public  List<PackageInfo> getAllApps(Context context) {

 List<PackageInfo> apps = new ArrayList<PackageInfo>();

 PackageManager pManager = context.getPackageManager();

 //獲取手機內(nèi)所有應(yīng)用

 List<PackageInfo> paklist = pManager.getInstalledPackages(0);

 for (int i = 0; i < paklist.size(); i++) {

  PackageInfo pak = (PackageInfo) paklist.get(i);

  //判斷是否為非系統(tǒng)預(yù)裝的應(yīng)用程序

  if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) <= 0) {

   // customs applications

   apps.add(pak);

  }

 }

 return apps;

}

分享文章:在一個a.apk中打開另一個b.apk,坑爹的是這b.apk沒有入口配置
當(dāng)前鏈接:http://www.rwnh.cn/article20/jgpcco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)靜態(tài)網(wǎng)站、定制開發(fā)、微信公眾號網(wǎng)站策劃、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
阜宁县| 桦南县| 南雄市| 南康市| 景东| 彰武县| 武陟县| 阳谷县| 封开县| 福贡县| 都匀市| 青田县| 衡东县| 宁陕县| 蓬溪县| 泌阳县| 浦城县| 秭归县| 甘德县| 淅川县| 汝州市| 卢氏县| 澄江县| 偏关县| 永康市| 青铜峡市| 河间市| 通道| 宜丰县| 丽江市| 启东市| 吉木乃县| 綦江县| 巴塘县| 建水县| 宝清县| 海兴县| 十堰市| 滦平县| 普陀区| 榆社县|