嗨我正在从偏好设置屏幕启动活动.活动在三个偏好中共享.我想知道我是否可以在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)
我需要做的就是传递一个整数.我可以采取不同的行动并检查行动而不是额外的行动.
我想知道如何将文本发送到特定的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?
请有人向我解释一下:
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)
我无法为所有情况找到合适的背景如何在每种情况下知道什么是正确的?
我的项目的构建路径上有一个库(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上播放视频.我正在使用的代码是:
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设备应该支持的意图/类名列表吗?或者特定的一个发布视频?谢谢!
我已经升级到targetSdkVersion和。compileSdkVersion33
我现在收到警告,告诉我getSerializedExtra(name:)和getParcelableExtra(name:)方法已被弃用。
我从Intent类中的文档检查并确认这两种方法确实已被弃用。
该文档建议我改用新的getSerializedExtra(name:clazz:)和getParcelableExtra(name:clazz:)方法。
谁能帮助我使用新方法?
Object:Listor时发出警告ArrayList:android android-intent kotlin deprecation-warning android-tiramisu
我想从Context获取视图或findViewById()?还是从意图?
我试图在我的广播接收器中到达特定视图,onReceive的参数是上下文和意图.
好吧,我有一个班级,其中是我的广播接收器.现在,我正在尝试将广播接收器与它分开,但我需要一种方法,这样我仍然可以从我的分离广播接收器类中与我的类上的视图进行通信.
谢谢.
正如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) 我一直试图让这个程序工作,但到目前为止没有运气.我无法找到我做错的地方.我不确定代码或调试是否有问题.
我正在尝试收到新短信到达时的通知.
这是我的计划:
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)