我有点困境。我正在尝试为我的应用实施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>
答案 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.
}
}