如何使我的android apk在多台设备上兼容?

kx7yvsdv  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(379)

在上下文中,我试图用java创建一个android应用程序,它可以与其他手机共享。我设法让应用程序使用蓝牙成功地将自己的apk发送到另一部android手机(见下面的实现)。
问题是一部手机的apk不会安装在另一部手机上。为了排除故障,我下载了一个第三方apk提取器,将我的应用程序发送到其他手机,结果相同——apk已成功传输,但不会安装在其他手机上。然后,我尝试使用apk提取器共享随机选择的google play应用程序,有些应用程序可以成功安装在第二部手机上,而另一些则不会。
在这个阶段,我敢肯定这是一个兼容性问题。如何使我的apk在不同设备间更兼容?作为参考,我目前正在三款手机上测试它:三星galaxy s7、华为nova 3i和motorolla xt1052,但最终我希望该应用程序能够在尽可能多的设备上访问。
提前感谢:)
sendapp函数

public void sendApp(Activity activity) {
    try {
        PackageManager pm = activity.getPackageManager();
        ApplicationInfo app = pm.getApplicationInfo(activity.getPackageName(), 0);
        File apkFile = new File(app.publicSourceDir);

        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("*/*");
        Uri uri = FileProvider.getUriForFile(
                getApplicationContext(),
                BuildConfig.APPLICATION_ID + ".provider", //(use your app signature + ".provider" )
                apkFile);
        intent.putExtra(Intent.EXTRA_STREAM, uri);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        startActivity(intent);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

manifest.xml提供程序标记:

<provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="${applicationId}.provider"
        android:exported="false"
        android:grantUriPermissions="true">
        <!-- resource file to create -->
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths">
        </meta-data>
    </provider>

文件\u paths.xml

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <root-path
        name="root"
        path="."/>
</paths>
qncylg1j

qncylg1j1#

发现问题了!我发送的是调试apk,而不是发布apk。我刚刚在android studio中创建了一个签名的apk(构建>生成签名包/apk)。我自己没有想出解决方案,但是在我选择答案之前,回答者就把答案去掉了。

相关问题