我正在创建一个必须从 WhatsApp 导出聊天功能接收 txt 文件的应用程序。
我用一个意图过滤器完成了这个,我得到了一个路径“content:/com.whatsapp.provider.media/export-chat/(phone-number)@s.whatsapp.net 我把它作为一个文件,当我尝试阅读它,它不在那里。它给出了 FileNotFound 异常。
这是意图过滤器
<activity android:name="app.app.whatsanalitycs.Recibir">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<action android:name="android.intent.action.SEND_MULTIPLE"/>
<category android:name="android.intent.category.APP_EMAIL"/>
<category android:name="android.intent.category.APP_MESSAGING"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="text/*" />
</intent-filter>
</activity>
这是当有人从 whatsapp 调用 intent-filter 时调用的 onCreate 函数
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView text = findViewById(R.id.hola);
TextView text2 = findViewById(R.id.hola2);
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
text.setText(intent.getDataString());
Bundle bundle = intent.getExtras();
ArrayList a = (ArrayList) bundle.get(Intent.EXTRA_STREAM);
Uri uri = (Uri) a.get(0);
File file = new File(uri.toString());
text2.setText(file.getParent());
}
我一直在检查其他使用 Intent 过滤器的应用程序,文件路径应具有以下格式:“content://com.whatsapp.provider.media/item/(somenum)” 我知道这一点是因为我试图通过以下方式发送导出的聊天记录whatsapp,这就是保存它的 url。我不知道问题是出在意图过滤器上,还是出在我如何读取接收到的意图上。
红糖糍粑
相关分类