亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢查某個活動是否可以處理意圖?

如何檢查某個活動是否可以處理意圖?

慕仙森 2019-12-26 10:05:44
到目前為止,我已經有了這種方法,但是好像缺少了一些東西例如,我有一個文件/sdcard/sound.3ga,該文件返回false(例如沒有活動可以處理此類文件),但是當我從文件管理器中打開它時,它可以與媒體播放器一起正常打開我認為這個意圖還不完整,我需要做更多的事情來確保只有沒有活動可以處理該意圖時,handlerExists變量才會為false。PackageManager pm = getPackageManager();Intent intent = new Intent(android.content.Intent.ACTION_VIEW);String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uriString)).toString());String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);intent.setDataAndType(Uri.fromFile(new File(uriString)),mimetype);boolean handlerExists = intent.resolveActivity(pm) != null;
查看完整描述

3 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

edwardxu的解決方案非常適合我。


只是澄清一下:


PackageManager packageManager = getActivity().getPackageManager();

if (intent.resolveActivity(packageManager) != null) {

    startActivity(intent);

} else {

    Log.d(TAG, "No Intent available to handle action");

}


查看完整回答
反對 回復 2019-12-26
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

PackageManager manager = context.getPackageManager();

List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0);

if (infos.size() > 0) {

    //Then there is an Application(s) can handle your intent

} else {

    //No Application can handle your intent

}

您是否嘗試過此意圖?


Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromFile(yourFileHere));


查看完整回答
反對 回復 2019-12-26
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

if (intent.resolveActivity(getPackageManager()) == null) {

    // No Activity found that can handle this intent. 

}

else{

    // There is an activity which can handle this intent. 

}


查看完整回答
反對 回復 2019-12-26
  • 3 回答
  • 0 關注
  • 549 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號