簡體   English   中英

Android-Java-未找到處理意圖的活動

[英]Android - Java - No Activity Found to Handle Intent

我正在嘗試為跨平台程序Phonegap / Cordova 3.2創建一個Android / Java插件。 我正在關注幾個教程,但無法使用最簡單的插件。

目前,我正在研究我的Java代碼在某處錯誤的想法。

有人可以查看下面的代碼,並告知是否明顯存在問題嗎?

我不斷收到的錯誤是

Exception: No Activity found to handle Intent { act=android.intent.action.MEDIA_SCANNER_SCAN_FILE dat=file:///{"fullPath":"media\/test.mp3"} }

這是我的.java文件

package org.media.scan;

import java.io.File;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;

import android.content.Intent;
import android.net.Uri;

public class Scan extends CordovaPlugin {

@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

    try {
        if ( action.equals("addRemove") ) {

            String filePath = args.getString(0);

            filePath = filePath.replaceAll("^file://", "");

            if (filePath.equals("")) {
                callbackContext.error("null path passed");
                return false;
            }               

            File file = new File(filePath);

            Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            scanIntent.setData(Uri.fromFile(file));

            this.cordova.getActivity().startActivity( scanIntent );
            callbackContext.success("good");
            return true;

        } else {
            callbackContext.error("invalid action phrase");

        }

        return false;

    } catch(Exception e) {

        System.err.println("Exception: " + e.getMessage());
        callbackContext.error(e.getMessage());
        return false;
    }




}

}

我正在用此.js代碼調用Java代碼

var Scan = {
createEvent:function (fullPath, successCallback, errorCallback) {
    cordova.exec(
        successCallback, // success callback function
        errorCallback, // error callback function
        'Scan', // mapped to our native Java class
        'addRemove', // with this action name
        [
            {                  
                "fullPath":fullPath
            }
        ]
    );
}
}

module.exports = Scan;

這是廣播操作而不是活動操作,您應使用發送廣播方法進行這種操作!

http://developer.android.com/reference/android/content/Intent.html#ACTION_MEDIA_SCANNER_SCAN_FILE

這是代碼“ this.cordova.getActivity()。startActivity(scanIntent);”中的錯誤行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM