标签: android-intent

检测是否已接听拨出电话

一旦ACTION_NEW_OUTGOING_CALL播出,我需要捕获对方回答的以下事件.您能否就如何实现这一目标提出建议?我知道有可能因为Android拨号器应用程序在他们拿起时激动地将绿色的android图标更改为该人的照片.谢谢!

更新:我已经看过Android上处理传出呼叫的应用程序的来源.我注意到以下方法ContactsUtils:

/**
 * Kick off an intent to initiate a call.
 */

 public static void initiateCall(Context context, CharSequence
 phoneNumber) {
     Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
             Uri.fromParts("tel", phoneNumber.toString(), null));
     context.startActivity(intent); }
Run Code Online (Sandbox Code Playgroud)

我想我的回答是在听的活动中Intent.ACTION_CALL_PRIVILEGED.所以重新回答我的问题:有谁知道哪个活动处理Intent.ACTION_CALL_PRIVILEGED?先谢谢你

android telephony android-intent

51
推荐指数
2
解决办法
1万
查看次数

是否有针对音量变化的广播动作?

我正在编写一个小部件,只要用户更改振铃器音量或振动设置,就需要更新.

捕获android.media.VIBRATE_SETTING_CHANGED对于振动设置工作得很好,但我没有找到任何方式在铃声音量变化时得到通知,虽然我可以尝试捕捉当用户按下音量增大/音量减小物理键时,还有很多其他选项在不使用这些键的情况下更改音量.

你知道是否有任何广播行动为此定义或以任何方式创建一个或没有它解决问题?

android volume broadcast android-intent

51
推荐指数
5
解决办法
4万
查看次数

指定的子项已有父项.您必须首先在孩子的父母上调用removeView()

我创建这篇文章,因为我是新手,我需要一些帮助.我正在做一个关于你的名字的应用程序的一个小练习,它返回"你好(你放的名字)".但是在我按下按钮后,我收到错误"指定的孩子已经有了父母.你必须首先在孩子的父母上调用removeView()"

MainActivity.java

package com.example.holaamigos;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.*;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
    public final static String EXTRA_SALUDO = "com.example.holaamigos.SALUDO";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final EditText txtNombre = (EditText)findViewById(R.id.TxtNombre);
        final Button btnHola = (Button)findViewById(R.id.BtnHola);

            btnHola.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(MainActivity.this, ActivitySaludo.class);
                    String saludo = txtNombre.getText().toString();
                    intent.putExtra(EXTRA_SALUDO, saludo);
                    startActivity(intent);
        }

    });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) { …
Run Code Online (Sandbox Code Playgroud)

xml android android-intent android-layout

51
推荐指数
5
解决办法
10万
查看次数

深层链接意图不起作用

我按照https://developer.android.com/training/app-indexing/deep-linking.html上的说明进行操作,但是当我想触发意图adb时:

adb shell am start
           -W -a android.intent.action.BROWSEABLE
           -d "http://example.com/gizmos" com.myapp.android
Run Code Online (Sandbox Code Playgroud)

我得到了

Error: Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=example://gizmos flg=0x10000000 pkg=com.myapp.android }

<activity
        android:name=".activities.DeepLinkActivity"
        android:label="@string/title_activity_deep_link">
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:scheme="http"
                android:host="example.com"
                android:pathPrefix="/gizmos" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

我有任何明显的错误吗?

android deep-linking android-manifest android-intent

51
推荐指数
4
解决办法
6万
查看次数

从Android应用安装程序和主屏幕启动应用程序时的活动堆栈排序问题

仅出于测试目的,我允许通过URL下载和安装我的应用APK.下载到手机上后,可以使用Android应用安装程序启动它,用户可以选择将其安装到自己的设备上然后再运行.

考虑我们是否以上述方式下载并运行应用程序.我的应用中的主/启动器活动是登录页面(Activity A).一旦用户被认证,他们就被带到应用程序的主要区域,例如Activity B.所以现在这个任务的当前活动堆栈是A > B.

然后我按下手机上的主页按钮,然后进入Android主屏幕.我通过菜单中的图标重新启动我的应用程序,我被带到了Activity A,而不是Activity B.活动堆栈现在是A > B > A,或者现在有两个单独的任务与活动堆栈A > B,A分别.我想要的是Activity B在我重新启动应用程序时被收回.在这种状态下按回来将带我回去Activity B.

如果我首先通过安装程序打开应用程序,而不是通过主屏幕/菜单打开应用程序,则只会发生这种不良行为.

我研究了各机制如何开展活动.当我们使用app安装程序时,我们会看到以下日志:

INFO/ActivityManager(XXXX): Starting activity: Intent { dat=file:///mnt/sdcard/download/[my app].apk cmp=com.android.packageinstaller/.InstallAppProgress (has extras) }
INFO/ActivityManager(XXXX): Starting activity: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=[my package]/[Activity A] }
Run Code Online (Sandbox Code Playgroud)

通过发射器/主屏幕:

INFO/ActivityManager(XXXX): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=[my package]/[Activity A] }
Run Code Online (Sandbox Code Playgroud)

当使用安装程序启动时,我们看到它正在使用标志0x10000000,但是当启动器启动时,我们看到它正在使用0x10200000.它也使用意图类别.

从 …

flags android task android-intent android-activity

50
推荐指数
2
解决办法
1万
查看次数

Android E/Parcel:解组时找不到类(仅限三星Tab3)

我一直无法解决为什么会出现这种错误,并且只能在运行4.4.2的三星Tab3设备上解决?它发生在我的MainActivity启动另一个Activity时,并在intent中传递一个Parcelable类,如下所示:

    private void debugTest(TestParcel cfgOptions){
        TestParcel cfgOptions = new TestParcel();
        cfgOptions.setValue(15); //just to verify

        Intent intent = new Intent(MainActivity.this, TestActivity.class);
        intent.putExtra("cfgOptions", cfgOptions);
        startActivityForResult(intent, DBG_TEST);
    }
Run Code Online (Sandbox Code Playgroud)

TestActivity获取可分配的数据,如下所示:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test_activity);

    TestParcel cfgOptions = getIntent().getExtras().getParcelable("cfgOptions");
}
Run Code Online (Sandbox Code Playgroud)

TestParcel类:

    import android.os.Parcel;
    import android.os.Parcelable;

    public class TestParcel implements Parcelable {
    private long l_ucs_value = 0;
    private String s_rx_number = "";

    //constructor
    public TestParcel() {
        l_ucs_value = 0;
        s_rx_number = "";
    }

    public void RxNumber(String s) {
        s_rx_number = s;
    }
    public …
Run Code Online (Sandbox Code Playgroud)

android unmarshalling parcel android-intent classnotfoundexception

50
推荐指数
4
解决办法
4万
查看次数

如何判断Android中是否存在Intent附加功能?

我有这个代码,检查从我的应用程序中的许多地方调用的活动上的Intent中的额外值:

getIntent().getExtras().getBoolean("isNewItem")
Run Code Online (Sandbox Code Playgroud)

如果未设置isNewItem,我的代码会崩溃吗?在我打电话之前,有没有办法判断它是否已经设定?

处理这个问题的正确方法是什么?

java android android-intent

49
推荐指数
3
解决办法
5万
查看次数

Android Intent无法解析构造函数

我有一个扩展Fragment的第一个类,以及扩展Activity的第二个类.

我的片段工作正常,片段中的Intent代码是:

ImageButton button= (ImageButton) getView().findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(MyFragment.this, MyClass.class);
            MyFragment.this.startActivity(myIntent);            }
    });
Run Code Online (Sandbox Code Playgroud)

我的MyClass类代码是:

public class MyClass extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // The activity is being created.
    }

    @Override
    protected void onStart() {
        super.onStart();

        setContentView(R.layout.MyClass);
    } 
}
Run Code Online (Sandbox Code Playgroud)

错误是:

Gradle: cannot find symbol constructor Intent(com.xxxx.xxxx.MyFragment,java.lang.Class<com.xxxx.xxxx.MyClass>)

我不知道哪里出错了.

android android-intent

49
推荐指数
3
解决办法
9万
查看次数

startActivityForResult()和startActivity()之间的区别?

startActivityForResult()和之间有什么区别startActivity()

何时以及为什么我应该使用每一个?

android android-intent android-activity start-activity

48
推荐指数
2
解决办法
2万
查看次数

如何将ArrayList <CustomeObject>从一个活动传递到另一个活动?

我想将以下ArrayList从一个活动发送到另一个活动请帮忙.

ContactBean m_objUserDetails = new ContactBean();
ArrayList<ContactBean> ContactLis = new ArrayList<ContactBean>(); 
Run Code Online (Sandbox Code Playgroud)

我在如下添加数据后发送上面的arraylist

  Intent i = new Intent(this,DisplayContact.class);
  i.putExtra("Contact_list", ContactLis);
  startActivity(i);
Run Code Online (Sandbox Code Playgroud)

但是我在恢复时遇到了问题.

ArrayList<ContactBean> l1 = new ArrayList<ContactBean>();
Bundle wrapedReceivedList = getIntent().getExtras();
l1= wrapedReceivedList.getCharSequenceArrayList("Contact_list");
Run Code Online (Sandbox Code Playgroud)

此时我收到此错误:

Type mismatch: cannot convert from ArrayList<CharSequence> to ArrayList<ContactBean>
Run Code Online (Sandbox Code Playgroud)

我的ContactBean类实现了Serializable,也请告诉我们为什么要实现可序列化的接口.

android bundle serializable android-intent

48
推荐指数
4
解决办法
11万
查看次数