我一直在研究Android程序,使用Intent发送包含附件(图像文件,音频文件等)的电子邮件ACTION_SEND.电子邮件只有一个附件时,该程序正在运行.我曾经Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri)将指定的图像文件附加到邮件中,并且工作正常,邮件可以通过Gmail传送.但是,当我尝试通过Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri)多次调用将多个图像附加到同一邮件时,它无法正常工作.电子邮件中没有显示任何附件.
我搜索了SDK文档和Android编程用户组关于电子邮件附件但找不到任何相关信息.但是,我发现有另一个意图常量ACTION_SEND_MULTIPLE(自API级别4起可用)可能符合我的要求.基于SDK文档,它只是声明它向其他人提供多个数据,它的工作方式类似ACTION_SEND,除了数据是多个.但我还是无法弄清楚这个命令的正确用法.我试图声明意图ACTION_SEND_MULTIPLE,然后putExtra(EXTRA_STREAM, uri)多次调用以附加多个图像,但我得到了与之前相同的错误结果,没有任何附件显示在电子邮件中.
有没有人试过ACTION_SEND_MULTIPLE并使用多个电子邮件附件?
当我运行我的应用程序时,每次我在logcat中获得以下异常时:
04-14 09:29:53.965: W/dalvikvm(1020): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
04-14 09:29:53.985: E/AndroidRuntime(1020): FATAL EXCEPTION: main
04-14 09:29:53.985: E/AndroidRuntime(1020): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.LoadedApk.makeApplication(LoadedApk.java:482)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3938)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread.access$1300(ActivityThread.java:123)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.os.Handler.dispatchMessage(Handler.java:99)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.os.Looper.loop(Looper.java:137)
04-14 09:29:53.985: E/AndroidRuntime(1020): at android.app.ActivityThread.main(ActivityThread.java:4424)
04-14 09:29:53.985: E/AndroidRuntime(1020): at java.lang.reflect.Method.invokeNative(Native Method)
04-14 09:29:53.985: E/AndroidRuntime(1020): at java.lang.reflect.Method.invoke(Method.java:511)
04-14 09:29:53.985: E/AndroidRuntime(1020): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-14 09:29:53.985: …Run Code Online (Sandbox Code Playgroud) 我AlertDialog在我的活动中做了一个简单的事:
View view = layoutInflater.inflate(R.layout.my_dialog, null);
AlertDialog infoDialog = new AlertDialog.Builder(MyActivity.this)
.setView(view)
.create();
infoDialog.show();
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,对话框显示在屏幕的中心(大约).
我想知道,如何自定义对话框位置以使其显示在顶部操作栏下?(无论如何改变对话的重力或某些东西?)以及如何根据我的代码做到这一点?
android android-widget android-emulator android-intent android-layout
onStartCommand(Intent, int, int)除了系统通过诸如START_STICKY?之类的标志重新启动服务之外,传递给它的Intent是否还有其他原因是NULL ?
此外,当系统重新启动服务时,该Intent.getAction()方法有时返回NULL ... Intent不仅仅是NULLgetAction()
我也在这里问过,但还没有得到答案.
UPDATE:马克·墨菲聊天后,他建议我返回START_REDELIVER_INTENT的onStartCommand()回调在我的服务,而不是START_STICKY使整个意图在重新启动发送.
我最初没有这样做,因为我担心如果服务试图做某事,那么在服务重新启动的那个中间......它会认识到它开始做那件事吗?我想这是逻辑我需要负责:)
我需要点击意图ACTION_SEND的按钮.这里不需要显示UI.我可以从Android中的MMS-SMSProvider点击"发送"按钮吗?
我正在尝试将URI-Object传递给我的Intent,以便在另一个活动中使用该URI ...
如何传递URI?
private Uri imageUri;
....
Intent intent = new Intent(this, GoogleActivity.class);
intent.putExtra("imageUri", imageUri);
startActivity(intent);
this.finish();
Run Code Online (Sandbox Code Playgroud)
如何在我的其他活动中使用此URI?
imageUri = extras.getString("imageUri"); // I know thats wrong ...
Run Code Online (Sandbox Code Playgroud)
感谢你们
我想完成另一项活动的一项活动,例如:
在活动[A]中,单击按钮时,我调用活动[B]而不完成活动[A].
现在在Activity [B]中,有两个按钮,New和Modify.当用户点击修改然后从堆栈中弹出活动[A]并勾选所有选项.
但是当用户单击Activity [B]中的New按钮时,我将不得不从堆栈中完成Activity [A]并再次将Activity [A]重新加载到堆栈中.
我正在尝试,但我无法从堆栈中完成活动[A] ......我怎么能这样做?
我使用的代码如下:
来自活动[A]:
Intent GotoB = new Intent(A.this,B.class);
startActivityForResult(GotoB,1);
Run Code Online (Sandbox Code Playgroud)
同一活动中的另一种方法
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 1)
{
if (resultCode == 1) {
Intent i = getIntent();
overridePendingTransition(0, 0);
i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在活动[B]中,点击按钮:
setResult(1);
finish();
Run Code Online (Sandbox Code Playgroud) 我正在尝试开发一个应用程序,防止用户在没有密码的情况下访问指定的应用程序.情景是......
我正在做剩下的事情,只是第2部分令我感到困惑,经过多天阅读广播意图等并试图在我的试验项目中听"android.intent.action.MAIN"等我不能似乎检测到我的应用程序何时启动.
有人可以帮忙吗?我是否正确地寻找新的应用程序广播意图启动,或者我应该阅读系统日志以获取新意图,或者使用本机代码执行某些操作?
任何指针都会有所帮助,即使你无法完全回答它,我也可以做更多的研究.非常感谢.伊恩
我有一个Android应用程序,它支持通过其他应用程序发送文本.因此,它使用ACTION_SEND意图和EXTRA_TEXT字段.选择器向我提供了可以处理这种意图的所有应用程序.这些是推特,电子邮件,...和Facebook.但是当我选择Facebook时,它会打开浏览器并转到以下页面:
http://m.facebook.com/sharer.php?u=mytext
它显示我的文本和提交按钮.但是,当我按下提交按钮时,没有任何事情发生.该页面再次加载.我想也许只能通过Facebook应用程序发送URL.可能是吗?
有没有人设法通过Facebook Android应用程序通过ACTION_SEND发送文本?
我正在开发我的Android项目,在我删除了一个未使用的库后,我得到了错误:
myproject/gen already exists but is not a source folder. Convert to a source folder or rename it
Run Code Online (Sandbox Code Playgroud)
在我的Activity代码中,R.java无法解析所有资源.
我试过,右键单击我的项目=> Java Build Path =>在"Source"选项卡下,我添加了gen/as source.但这对问题没有帮助......
为什么,如何摆脱这个问题?
---- ----更新
我发现,eclipse还抱怨"Project没有project.properties文件!编辑项目属性来设置一个." ,但我的项目下有project.properties文件.为什么抱怨?我已经清理了项目并"修复项目属性",但它没有帮助.
android android-widget android-emulator android-intent android-layout
android ×10
android-intent ×10
attachment ×1
button ×1
click ×1
email ×1
facebook ×1
java ×1
uri ×1