标签: android-intent

有没有办法从偏好中添加额外的Intent?

嗨我正在从偏好设置屏幕启动活动.活动在三个偏好中共享.我想知道我是否可以在xml中为此活动设置额外内容

<Preference
    android:key="action_1"
    android:title="@string/action_1_title"
>
    <intent
        android:action="com.package.SHAREDACTION"
    >

    </intent>
</Preference>
Run Code Online (Sandbox Code Playgroud)

我想知道我能做些什么

<extras>
     <item
      android:name=""
      android:value=""/>
</extras>
Run Code Online (Sandbox Code Playgroud)

我需要做的就是传递一个整数.我可以采取不同的行动并检查行动而不是额外的行动.

android intentfilter extras android-intent

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

什么是START_STICKY,START_NOT_STICKY和START_REDELIVER_INTENT服务

我无法理解

  1. START_STICKY,
  2. START_NOT_STICKY和
  3. START_REDELIVER_INTENT

任何人都可以用例子清楚解释.

我经历了这个链接,但无法清楚地理解它.

android android-intent

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

以编程方式将文本发送到特定联系人(whatsapp)

我想知道如何将文本发送到特定的WhatsApp联系人.我找到了一些代码来查看特定联系人,但不发送数据.

Cursor c = getContentResolver().query(ContactsContract.Data.CONTENT_URI,
    new String[] { ContactsContract.Contacts.Data._ID }, ContactsContract.Data.DATA1 + "=?",
    new String[] { id }, null);
c.moveToFirst();
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("content://com.android.contacts/data/" + c.getString(0)));

startActivity(i);
c.close();
Run Code Online (Sandbox Code Playgroud)

这适用于查看whatsapp-contact,但我现在如何添加一些文本?或者Whatsapp开发人员没有实现这样的api?

android contact android-intent whatsapp

55
推荐指数
10
解决办法
13万
查看次数

Android意图上下文令人困惑

请有人向我解释一下:

Intent intent = new Intent(Context, AlarmReceiver.class);
Run Code Online (Sandbox Code Playgroud)

我从来没有理解过,我认真地认为如果有人不试图向我解释这个问题,我永远不会理解.整个上下文的事情让我很困惑.有时它的工作方式如下:

Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
Run Code Online (Sandbox Code Playgroud)

有时它不会像那样工作,但它只接受:

    Intent intent = new Intent(context, AlarmReceiver.class);
Run Code Online (Sandbox Code Playgroud)

有时它:

Intent intent = new Intent(this, AlarmReceiver.class);
Run Code Online (Sandbox Code Playgroud)

等等等等.

我理解上下文的基础但有多少?为什么eclipse会一次又一次地给我一个错误呢?为什么我们有时需要声明上下文?:

Context context;
Run Code Online (Sandbox Code Playgroud)

我无法为所有情况找到合适的背景如何在每种情况下知道什么是正确的?

java android android-intent android-context

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

Android - java.lang.SecurityException:Permission Denial:启动Intent

我的项目的构建路径上有一个库(jar).项目使用以下意图访问jar中的MainActivity:

final Intent it = new Intent();
it.setClassName("com.example.lib", "com.example.lib.MainActivity");
startActivity(it);
Run Code Online (Sandbox Code Playgroud)

它曾经工作了一段时间,但突然开始得到'ActivityNotFoundException:没有找到活动来处理Intent',我能够解决它.但是现在我遇到了'java.lang.SecurityException:Permission Denial:start Intent'.

我已经尝试了所有关于stackoverflow的建议(检查清单文件中的重复项;将lib:exported ="true"添加到lib清单; Eclipse> Project> Clean;添加/修改'intent-filter'标签;等等).我甚至尝试重新编写项目的清单,但没有去任何地方.

这是logcat输出:

11-07 06:20:52.176: E/AndroidRuntime(4626): FATAL EXCEPTION: main
11-07 06:20:52.176: E/AndroidRuntime(4626): java.lang.SecurityException: Permission     Denial: starting Intent { cmp=com.example.lib/.MainActivity } from ProcessRecord{40dd3778     4626:com.example.project/u0a10046} (pid=4626, uid=10046) not exported from uid 10047
11-07 06:20:52.176: E/AndroidRuntime(4626):     at android.os.Parcel.readException(Parcel.java:1425)
11-07 06:20:52.176: E/AndroidRuntime(4626):     at android.os.Parcel.readException(Parcel.java:1379)
11-07 06:20:52.176: E/AndroidRuntime(4626):     at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1885)
11-07 06:20:52.176: E/AndroidRuntime(4626):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1412)
11-07 06:20:52.176: E/AndroidRuntime(4626):     at android.app.Activity.startActivityForResult(Activity.java:3370)
11-07 06:20:52.176: E/AndroidRuntime(4626):     at android.app.Activity.startActivityForResult(Activity.java:3331)
11-07 06:20:52.176: E/AndroidRuntime(4626):     at …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-library

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

Android打视频的意图?

我试图通过启动一个意图在Android上播放视频.我正在使用的代码是:

tostart = new Intent(Intent.ACTION_VIEW);
tostart.setDataAndType(Uri.parse(movieurl), "video/*");
startActivity(tostart); 
Run Code Online (Sandbox Code Playgroud)

这适用于大多数手机,但不适用于HTC Hero.它似乎加载了一些不同的视频播放器.这确实播放了第一个视频.但是,之后的每个视频都没有响应.(它保持一定的循环).

如果我添加一个明确的

tostart.setClassName("com.htc.album","com.htc.album.ViewVideo");
Run Code Online (Sandbox Code Playgroud)

(在开始活动之前)它确实适用于HTC Hero.但是,由于这是HTC特定的呼叫,我无法在其他手机(例如G1)上运行此代码.在G1上,这有效:

tostart.setClassName("com.android.camera","com.android.camera.MovieView"); //g1 version
Run Code Online (Sandbox Code Playgroud)

但英雄没有想到这个意图.有人知道所有Android设备应该支持的意图/类名列表吗?或者特定的一个发布视频?谢谢!

video sdk android android-intent

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

getSerializedExtra 和 getParcelableExtra 已弃用。还有什么选择呢?

我已经升级到targetSdkVersion和。compileSdkVersion33

我现在收到警告,告诉我getSerializedExtra(name:)getParcelableExtra(name:)方法已被弃用。

我从Intent类中的文档检查并确认这两种方法确实已被弃用。

该文档建议我改用新的getSerializedExtra(name:clazz:)getParcelableExtra(name:clazz:)方法。

谁能帮助我使用新方法?

警告示例

  1. 收到以下警告时Object

getSerializedExtra_Deprecated_Image

  1. 收到Listor时发出警告ArrayList

getSerializedExtra_Deprecated_List_Image

android android-intent kotlin deprecation-warning android-tiramisu

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

android - 如何从上下文中获取视图?

我想从Context获取视图或findViewById()?还是从意图?

我试图在我的广播接收器中到达特定视图,onReceive的参数是上下文和意图.

好吧,我有一个班级,其中是我的广播接收器.现在,我正在尝试将广播接收器与它分开,但我需要一种方法,这样我仍然可以从我的分离广播接收器类中与我的类上的视图进行通信.

谢谢.

android broadcastreceiver android-intent android-context

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

Android在实现RecognitionListener时获取Intent

正如Iftah这个回答中所说的那样,我可以通过将Intent传递给Uri来获取由Android中的Speech Recoginition录制的音频:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // the recording url is in getData:
    Uri audioUri = data.getData();
}
Run Code Online (Sandbox Code Playgroud)

这里Intent data有我想要的没有问题.

这一切都完美无缺,但是这个解决方案为用户提示何时发言,我不想这样解决问题我让我的活动实现了RecognitionListener:

public class MainActivity extends AppCompatActivity implements RecognitionListener {

    private SpeechRecognizer speech = null;
    private Intent recognizerIntent;

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

        recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "sv_SE");
        recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "sv_SE");
        recognizerIntent.putExtra("android.speech.extra.GET_AUDIO_FORMAT", "audio/AMR");
        recognizerIntent.putExtra("android.speech.extra.GET_AUDIO", true);

        speech = SpeechRecognizer.createSpeechRecognizer(this);
        speech.setRecognitionListener(this);
        speech.startListening(recognizerIntent);
    }

    @Override
    public void onReadyForSpeech(Bundle params) …
Run Code Online (Sandbox Code Playgroud)

java android android-intent

52
推荐指数
1
解决办法
2146
查看次数

Android - 短信广播接收器

我一直试图让这个程序工作,但到目前为止没有运气.我无法找到我做错的地方.我不确定代码或调试是否有问题.

我正在尝试收到新短信到达时的通知.

这是我的计划:

package Technicaljar.SMSBroadcastReceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;

public class SMSBroadcastReceiver extends BroadcastReceiver {

        private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
        private static final String TAG = "SMSBroadcastReceiver";

        @Override
        public void onReceive(Context context, Intent intent) {
             Log.i(TAG, "Intent recieved: " + intent.getAction());

                if (intent.getAction() == SMS_RECEIVED) {
                    Bundle bundle = intent.getExtras();
                    if (bundle != null) {
                        Object[] pdus = (Object[])bundle.get("pdus");
                        final SmsMessage[] messages = new SmsMessage[pdus.length];
                        for (int i …
Run Code Online (Sandbox Code Playgroud)

sms android broadcastreceiver android-intent

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