【问题标题】:Why GetIntent is not working for link in adnroid?为什么 GetIntent 不适用于 android 中的链接?
【发布时间】: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);
        }
}

请注意,我向其发送共享数据的活动不是主要活动。

谢谢

【问题讨论】:

    标签: java android


    【解决方案1】:

    您可以像这样尝试 intent-filter :

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
            </intent-filter>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-17
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 2011-12-03
      • 2018-02-22
      相关资源
      最近更新 更多