Android 6.0 Direct Share在一个项目中不起作用,但在下一个项目中起作用

时间:2016-01-19 01:13:54

标签: java android

我有点困境。我正在尝试为我的应用实施Android 6.0直接共享功能。但是,当我实施它时,直接共享目标没有显示出来。我决定尝试将完全相同的代码放入我的不同应用程序中,并且完美运行。有没有人有任何想法为什么它可以在一个而不是下一个?

这是manifest.xml:

<activity android:name=".DirectShareReceiver"
            android:label="Direct Share Receiver">
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="text/plain"/>
            </intent-filter>
            <meta-data
                android:name="android.service.chooser.chooser_target_service"
                android:value=".PluginChooserTargetService" />
        </activity>

<service android:name=".PluginChooserTargetService"
            android:label="PluginDirectShare"
            android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
            <intent-filter>
                <action android:name="android.service.chooser.ChooserTargetService" />
            </intent-filter>
        </service>

1 个答案:

答案 0 :(得分:0)

从我看到的代码大部分工作在旧版本的android。 Android 6.0+有一种设置权限的新方法。

您需要使用newer versions of android(6.0 +)的新权限。

以下是该网站的一些示例:

// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
                Manifest.permission.READ_CONTACTS)
        != PackageManager.PERMISSION_GRANTED) {

    // Should we show an explanation?
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
            Manifest.permission.READ_CONTACTS)) {

        // Show an expanation to the user *asynchronously* -- don't block
        // this thread waiting for the user's response! After the user
        // sees the explanation, try again to request the permission.

    } else {

        // No explanation needed, we can request the permission.

        ActivityCompat.requestPermissions(thisActivity,
                new String[]{Manifest.permission.READ_CONTACTS},
                MY_PERMISSIONS_REQUEST_READ_CONTACTS);

        // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
        // app-defined int constant. The callback method gets the
        // result of the request.
    }
}