Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gamemaker Studio android java扩展未执行意图_Java_Android_Extension Methods_Gml - Fatal编程技术网

Gamemaker Studio android java扩展未执行意图

Gamemaker Studio android java扩展未执行意图,java,android,extension-methods,gml,Java,Android,Extension Methods,Gml,我正在做一个扩展来更新操作系统,有一个新的映像文件,它被GM:s中的一个函数调用,如下所示: osNotice(files+"/newButtonSkin.png"); 请注意,变量文件是绝对路径 然后函数将其作为字符串发送到java类扩展: package ${YYAndroidPackageName};//Import the GM:S stuff import ${YYAndroidPackageName}.R; import com.yoyoga

我正在做一个扩展来更新操作系统,有一个新的映像文件,它被GM:s中的一个函数调用,如下所示:

osNotice(files+"/newButtonSkin.png");
请注意,变量文件是绝对路径

然后函数将其作为字符串发送到java类扩展:

            package ${YYAndroidPackageName};//Import the GM:S stuff
    import ${YYAndroidPackageName}.R;
    import com.yoyogames.runner.RunnerJNILib;

    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Environment;
    import android.util.Log;
    import java.io.File;
    import java.lang.String;


public class PickMe extends Activity {
    public final void osNotice(String fupdate)//Notify the OS that there's a new media file available
    {
        Log.i("yoyo", "New file to alert os-  "+fupdate);
        String canAlert = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(canAlert)) 

        {
        File file = new File(fupdate);
        Log.i("yoyo", "File ready to send- "+ fupdate);
        Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file));
        intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
        sendBroadcast(intent);
        Log.i("yoyo", "Updated sucessfully! "+fupdate);
        }
        else
        Log.i("yoyo", "Could not update file-  "+fupdate);
    }
}
在我的清单中,我注入了:

    <activity android:name=".PickMe"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


运行应用程序的结果是图像没有更新到操作系统,为什么没有运行意图?当我知道方法正在运行时,为什么日志会说“在扩展类上找不到方法:null”?

已解决!!要使Gamemaker:Studio端可以看到意图,您必须调用:

        RunnerActivity.CurrentActivity.sendBroadcast(intent);
在完成构建意图之后。这会告诉gm:s方媒体扫描程序的广播意图已经开始。感谢GMC公司的摩尔向我指出了这一点

更详细地说,广播意图不同于启动活动的其他意图,广播意图在扩展的java端触发异步事件,如果您在java文件中启动活动,您将使用

        RunnerActivity.CurrentActivity.startActivity(intent);
还要记住扩展您的课程,如:

public class MyClass extends Activity {// for either broadcast or start activity

这正是我想要的!!