为了账号安全,请及时绑定邮箱和手机立即绑定

插入链接以在字符串资源中发送 Intent

插入链接以在字符串资源中发送 Intent

千巷猫影 2022-05-21 21:02:40
我想在 Android 应用程序的字符串资源项中添加一个链接。我看到可以插入这样的链接<string name="my_link"><a href="http://somesite.com/">Click me!</a></string>但我不想启动一个网站,而是想发送一个 Intent 将用户带到他的手机设置。可以有这样的链接吗?
查看完整描述

2 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

您可以使用DeepLinks来处理特定URL的 s。为此,您应该引入一个Activity作为特定模式的处理程序URL。因此,当用户单击特定模式链接时,Activity可以选择您作为其处理程序,然后您可以打开电话设置。这是这个想法的一个实现:


清单.xml


<activity android:name=".MyTransientActivity">


    <intent-filter>


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


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

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


        <!-- Accepts URIs that begin with "http://somesite.com" -->

        <data android:host="somesite.com" />

        <data android:scheme="http" />


    </intent-filter>


</activity>

MyTransientActivity.java


import android.content.Intent;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.v7.app.AppCompatActivity;


public class MyTransientActivity extends AppCompatActivity {


    @Override

    public void onCreate(@Nullable Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        if (getIntent() != null) {

            String action = getIntent().getAction();

            if (action != null && action.equals(Intent.ACTION_VIEW)) {

                Intent settingsIntent = new Intent(android.provider.Settings.ACTION_SETTINGS);

                settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                getApplicationContext().startActivity(settingsIntent);

            }

        }

        finish();

    }


}

测试:


TextView textview = findViewById(R.id.textView);

textview.setText(getString(R.string.my_link));

Linkify.addLinks(textview, Linkify.WEB_URLS);

textview.setMovementMethod(LinkMovementMethod.getInstance());


查看完整回答
反对 回复 2022-05-21
?
aluckdog

TA贡献1847条经验 获得超7个赞

因为我知道你不能这样发送,你应该像这样添加它:


<string name="my_link">http://somesite.com/</string>

要发送意图,您必须像这样发送它:


String url = this.getResources().getString(R.string.my_link);

        Intent i = new Intent(Intent.ACTION_VIEW);

        i.setData(Uri.parse(url));

        startActivity(i);

这将使用您发送的链接打开您的安卓浏览器。我希望这很有用。:)


查看完整回答
反对 回复 2022-05-21
  • 2 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号