Articles of android intent

通话结束时意图被解雇?

我有一个已经build立的应用程序,我想添加一个function,必须在通话结束时启动。 我怎样才能做到这一点? 我想在我的清单里宣布这样的事情 <activity android:name="Filter"> <intent-filter> <category android:name="android.intent.SOMETHING" /> </intent-filter> </activity> 可能够了,但是我必须把什么样的Intent放在filter上? 查看文档,我发现只有意图,检测何时开始通话。 我正在寻找可能吗?

将用户定义对象的数组列表传递给Intent

我正在尝试将arraylist的结构传递给intent,如下所示,在我使用的调用函数中 ArrayList<Parliament> s=(ArrayList<Parliament>)msg.obj; Intent i = new Intent(ReadTasks.this, GenrateTasks.class); i.putExtra("tasks", s); startActivity(i); 并在被调用的函数 Bundle b = getIntent().getExtras(); if(b!=null) { ArrayList<Parliament> as = (ArrayList<Parliament>)b.getSerializable("tasklist"); } 我已经在两个类中给出了实现可序列化的实现,但是在线启动活动的调用函数中无法运行时间错误。 请帮助如何继续! 编辑1:堆栈跟踪: 04-01 22:21:53.999: E/AndroidRuntime(2078): FATAL EXCEPTION: main 04-01 22:21:53.999: E/AndroidRuntime(2078): java.lang.RuntimeException: Parcel: unable to marshal value com.viralm.readjson.Parliament@413597f0 04-01 22:21:53.999: E/AndroidRuntime(2078): at android.os.Parcel.writeValue(Parcel.java:1137) 04-01 22:21:53.999: E/AndroidRuntime(2078): at android.os.Parcel.writeList(Parcel.java:524) 04-01 22:21:53.999: […]

如何仅使用电子邮件应用程序发送电子邮件附件?

有两个要求: 电子邮件附件 在Intentselect器中,应该只有电子邮件应用程序。 我所知道/所做的: Intent.ACTION_SENDTO与intent.setData(Uri.parse("mailto:"))可以确保在Intentselect器中只有电子邮件应用程序,但它不会带来附件(对于一些像Gmail这样的应用程序,但也有很多将忽略附件的应用程序)。 Intent.ACTION_SEND可以通过附件发送邮件。 但是,在Intentselect器中,将会有应用程序实际上不是电子邮件应用程序,但可以响应Intent.ACTION_SEND 。 使用intent.setType("message/rfc822")可以减less这些应用程序的数量,但不是全部。 引用这个答案: https : //stackoverflow.com/a/8550043/3952691和几乎成功我的目标。 我的代码如下: private static void sendFeedbackWithAttachment(Context context, String subject) { Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setData(Uri.parse("mailto:")); PackageManager packageManager = context.getPackageManager(); List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(intent, 0); if (resolveInfos.isEmpty()) { Toast.makeText(context, context.getString(R.string.error_activity_not_found), Toast.LENGTH_SHORT).show(); } else { // ACTION_SEND may be replied by some apps that […]

AppWidget alarmmanager没有更新

所以,我有一个小部件,我希望它每60秒更新一次。 当小部件第一次被添加到主屏幕,它运行它的更新function就好了。 除此之外,它应该启动一个AlarmManager,它将每60秒重新运行更新方法。 这是它似乎没有实际做的部分。 这是我的代码: public class ClockWidget extends AppWidgetProvider { public static String CLOCK_WIDGET_UPDATE = "com.nickavv.cleanwidget.CLEANCLOCK_UPDATE"; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int appWidgetIds[]) { final int N = appWidgetIds.length; for (int i = 0; i < N; i++) { int appWidgetId = appWidgetIds[i]; RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.clocklayout); appWidgetManager.updateAppWidget(appWidgetId, views); updateAppWidget(context, […]

发送额外requestLocationUpdates intentService打破位置更新

我无法发送额外的string与我的PendingIntent ,我传递给LocationServices.FusedLocationApi.requestLocationUpdates(GoogleApiClient client, LocationRequest request, PendingIntent callbackIntent) 。 看来,额外的用户名放在Intent是mangling的位置, requestLocationUpdates试图切换到我的IntentService intent.getParcelableExtra(FusedLocationProviderApi.KEY_LOCATION_CHANGED)返回null 。 编辑 我试着做一个实现Parcelable的User类,把它作为一个额外的: mRequestLocationUpdatesIntent.putExtra("username", new User(username)); 而且我也试图把Parcelable User放在一个Bundle里面,就像这个bug报告中的评论一样https://code.google.com/p/android/issues/detail?id=81812 : Bundle userBundle = new Bundle(); userBundle.putParcelable("user", new User(username)); mRequestLocationUpdatesIntent.putExtra("user", userBundle); 在我的服务: Bundle userBundle = intent.getBundleExtra("user"); User user = userBundle.getParcelable("user"); String username = user.getUsername(); 然而这两种方法都没有什么区别。 每当我把任何额外的东西放在我的意图上,当更新发生时,这个位置永远不会被添加到意图中。 我设置这个IntentService来处理位置更新: public class LocationUpdateService extends IntentService { private final String […]

用户在MediaController上快速触摸。 错误只发生在Nexus 4上。

在我的活动中,我有一个VideoView应该显示一个MediaController的触摸。 如果用户在VideoView没有跟随的情况下快速触摸控制器,那么在用户按下后退button后,我的应用程序将被卡住。 setContentView(R.layout.activity_play_video_fullscreen); videoView = (VideoView) findViewById(R.id.video_view); urlString = getIntent().getStringExtra(EXTRA_URL); videoView.setVideoURI(Uri.parse(urlString)); videoView.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { // video ready to play – hide progress bar ProgressBar pb = (ProgressBar)findViewById(R.id.progress_bar); pb.setVisibility(ProgressBar.INVISIBLE); } }); videoView.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // video finished – terminate this activity AxUtils.axLog(AxUtils.eDbgLogError, AxUtils.eDbgLogGroupDialer, String.format("PlayVideoFullsreenActivity.videoView.onCompletion(): […]

分享到Android的Facebook(如Twitter)

任何试图通过Android分享到Facebook的人都知道,Facebook团队已经决定忽略共享协议,并忽略共享意图中提供的文本(请参阅: 通过ACTION_SEND在Android App上分享Facebook上的文本 ) 但是,似乎Twitter应用程序已经find了如何绕过这个。 当你在看tweet时: 你可以点击推特下面的分享图标,它会打开正常的分享对话框,其中包括Facebook的应用程序列表: 如果你点击Facebook,你会得到这个观点: 这看起来很完美,显然Twitter不仅仅是发送其他答案似乎提出的链接。 而且,如果你分享消息: 你可以看到文本被正确添加,没有问题。 微博是如何得到这个工作的?

为什么意图实现可复制?

为什么Android的Intent实现可Cloneable ? Intents是否被克隆? Intent的clone()实现被破坏,因为它调用构造函数而不是调用super.clone() 。 意图的子类保证有被破坏的行为,如果克隆(相应的Android错误 )。

通过WhatsApp发送消息

因为我发现了一些较旧的post,告诉whatsapp不支持这个,我想知道是否有什么改变,如果有一种方法来打开一个whatsapp与我通过意图发送的号码“聊天”?

意图没有收到来自Android Geofence事件

一切正常build立,并在模拟器中运行,但我似乎无法让我的IntentServicelogging任何东西。 我确定有一些基本的东西是我错过或者忽视的,但是我对Android / Java相当陌生,并且现在已经没有任何想法了。 public class MainActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { private Geofence geofence; private PendingIntent mGeofencePendingIntent; private GoogleApiClient mGoogleApiClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LatLng latLng = new LatLng(39.7492350, -104.9913250); geofence = new Geofence.Builder() .setRequestId(GEOFENCE_REQ_ID) .setCircularRegion(latLng.latitude, latLng.longitude, GEOFENCE_RADIUS_IN_METERS) .setExpirationDuration(GEOFENCE_EXPIRATION) .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT) .build(); mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(LocationServices.API) .addConnectionCallbacks(this) […]