【发布时间】:2023-02-24 13:05:53
【问题描述】:
我尝试了一个代码,试图获取用户通过其他应用程序共享的 URL。我想获取 URL,然后将该 URL 粘贴到我的 android 活动的 EditText 中。我已经尝试了下面的代码,当我在其他应用程序中单击共享时,此代码显示了我的应用程序,但它没有打开活动并将共享数据填充到EditText。以下是我尝试过的代码 -
AndroidManifest.xml
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
activity_geturl.xml
<EditText
android:id="@+id/urlinput"
android:layout_width="match_parent"
android:layout_height="@dimen/_37sdp"
android:background="@drawable/txt_bg"
android:gravity="center"
android:hint="Paste link here"
android:paddingLeft="@dimen/_10sdp"
android:paddingRight="@dimen/_10sdp"
android:singleLine="true"
android:textStyle="bold"
android:textSize="@dimen/_14sdp" />
GeturlActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_geturl);
boolean isActivityLaunchedFromActionSend = Intent.ACTION_SEND.equals(getIntent().getAction());
boolean isLinkData = getIntent().getType() != null && getIntent().getType().startsWith("text/") && getIntent().getStringExtra(Intent.EXTRA_TEXT) != null && Patterns.WEB_URL.matcher(getIntent().getStringExtra(Intent.EXTRA_TEXT)).matches();
if (isActivityLaunchedFromActionSend && isLinkData) {
String sentLink = getIntent().getStringExtra(Intent.EXTRA_TEXT);
EditText editText = findViewById(R.id.urlinput);
editText.setText(sentLink);
}
}
请注意,我向其发送共享数据的活动不是主要活动。
谢谢
【问题讨论】: